当前位置: 首页 > news >正文

二叉树的层序遍历及代码

5.3.1二叉树的层序遍历

1781599348994

1781599362200

#include<stdio.h>void LevelOrder(BiTree T){LinkQueue Q;InitQueue(Q);// 初始化辅助队列 BiTree p;EnQueue(Q,T);//将根节点入队 while(!IsEmpty(Q)){//队列不空则循环 DeQueue(Q,p);//对头结点出队 visit(p);//访问出队节点 if(p->lchild!=NULL)Enqueue(Q,p->lchild)//左孩子入队 if(p->rchild!=NULL)Enqueue(Q,p->rchild)//右孩子入队 }
}

1781600114968

#include<stdio.h>
#include<stdlib.h>//二叉树的结点(链式存储) 
typedef struct BiTNode{char data;struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;//链式队列结点 
typedef struct LinkNode{BiTNode *data;struct LinkNode *next;
}LinkNode;typedef struct{LinkNode *front,*rear;//队头队尾 
}LinkQueue; void LevelOrder(BiTree T){LinkQueue Q;InitQueue(Q);// 初始化辅助队列 BiTree p;EnQueue(Q,T);//将根节点入队 while(!IsEmpty(Q)){//队列不空则循环 DeQueue(Q,p);//对头结点出队 visit(p);//访问出队节点 if(p->lchild!=NULL)EnQueue(Q,p->lchild);//左孩子入队 if(p->rchild!=NULL)EnQueue(Q,p->rchild);//右孩子入队 }
}
# 可运行
#include<stdio.h>
#include<stdlib.h>//二叉树结点
typedef struct BiTNode{char data;struct BiTNode *lchild,*rchild;
}BiTNode, *BiTree;//链式队列结点
typedef struct LinkNode{BiTNode *data;struct LinkNode *next;
}LinkNode;typedef struct{LinkNode *front,*rear;
}LinkQueue;//队列基础函数声明
void InitQueue(LinkQueue *Q);
bool IsEmpty(LinkQueue *Q);
bool EnQueue(LinkQueue *Q, BiTNode *x);
bool DeQueue(LinkQueue *Q, BiTNode *&x);
void visit(BiTNode *p);//层序遍历
void LevelOrder(BiTree T){if(T == NULL) return;  //空树直接返回LinkQueue Q;InitQueue(&Q);         //传队列地址BiTree p;EnQueue(&Q, T);while(!IsEmpty(&Q)){DeQueue(&Q, p);visit(p);if(p->lchild != NULL)EnQueue(&Q, p->lchild);if(p->rchild != NULL)EnQueue(&Q, p->rchild);}
}//访问函数
void visit(BiTNode *p){printf("%c ", p->data);
}//下面是配套队列实现(大题可一并写上,完整不丢分)
void InitQueue(LinkQueue *Q){Q->front = Q->rear = (LinkNode*)malloc(sizeof(LinkNode));Q->front->next = NULL;
}bool IsEmpty(LinkQueue *Q){return Q->front == Q->rear;
}bool EnQueue(LinkQueue *Q, BiTNode *x){LinkNode *s = (LinkNode*)malloc(sizeof(LinkNode));s->data = x; s->next = NULL;Q->rear->next = s;Q->rear = s;return true;
}bool DeQueue(LinkQueue *Q, BiTNode *&x){if(IsEmpty(Q)) return false;LinkNode *p = Q->front->next;x = p->data;Q->front->next = p->next;if(Q->rear == p) Q->rear = Q->front;free(p);return true;
}

1781600177873

http://www.gsyq.cn/news/1536410.html

相关文章:

  • 佛山闲置黄金变现避坑|5家回收机构实测评级,选靠谱回收商不花冤枉钱 - 奢侈品交易观察员
  • 福州线上估价线下黄金回收全流程测评,引流高价到店压价套路拆解 - 奢侈品回收评测
  • 绵阳装修公司究竟哪家更靠谱?结合工地走访整理十家优质品牌详细资料 - 装修新知
  • 如何在Visual Studio中实现专业级Markdown编辑体验:5分钟掌握Markdown Editor v2核心功能
  • 终极指南:深度解析《鸣潮》模组开发技术栈与AES加密破解实战
  • 2026佛山甲醛检测品牌测评:CMA资质机构4维度严审,40%便携仪器未在有效校准期内 - 环保除醛知识库
  • 亨得利腕表送修防骗全合集:线下假冒门店实地实测 + 正规授权网点查询步骤(值得保存收藏) - 亨得利官方维修中心
  • 2026广州黄金上门回收只认这家,公安备案设备齐全,打款秒到 - 奢侈品回收评测
  • 如何开展校园十佳歌手人气奖评比活动?线上投票制作全攻略|2026班主任零踩坑经验分享 - 微信投票小程序
  • 西安靠谱包包回收门店盘点,实价上门拒绝套路 - 名奢变现站
  • 2026北京高性价比迷你仓推荐及最新收费参考指南 - 速递信息
  • 2026择校优选|近30年老牌国际校北京力迈,中西双轨全链路安心育人 - 资讯报道
  • 2026 广东梅州全域彩钢瓦翻新防水修缮公司 TOP4 权威推荐|优劣对比 + 高分测评 + 避坑指南 - 本地便民网
  • 2026年纸巾包装机/底部抽包装机厂家推荐排行榜:高效智能、柔护防破的包装设备优选品牌解析 - 品牌发掘
  • 搞定顽固痘斑不费力!宜兴宜城专业皮肤管理,适配普通人肤质养护 - 一知资讯
  • 毕业离境时随手扔掉本地水电账单?留学生身份安全与大厂背调的隐藏雷区「蒸汽求职分享」
  • 2026东莞甲醛治理品牌测评:回南天50天抗反弹力实测,光触媒品牌浓度反弹2.6倍 - 环保除醛知识库
  • Markdown编辑器 - 一键同步多平台 自媒体内容同步、内容营销、分发工具,自媒体助手,一键同步发布,支持微博头条、今日头条、豆瓣、WordPress、知乎、简书、typecho等各大平台
  • 2026年无锡常州企业数字化转型全流程服务商深度评测|钉钉生态5大品牌横评 - 精选优质企业推荐官
  • 5分钟解锁AI超能力:如何零成本获取OpenAI API密钥的完整指南
  • ComfyUI-Manager自动化节点安装脚本:技术方案深度解析与实战指南
  • 编写程序整合作息,饮食运动,情绪四大维度数据,生成个人综合健康评分报告。
  • TCP和UDP的代码实现
  • 2026保姆级EPS转PDF教程!在线/PS/AI/Python全方法汇总 - 办公小帮手
  • 3大核心功能深度解析:Scan Tailor如何让扫描文档处理效率提升500%
  • Docker,容器,容器化,DevOps,虚拟化
  • PingFangSC跨平台字体架构:现代Web应用的中文字体解决方案
  • 福州奢侈品黄金回收商家实力榜单2026综合测评:综合实力榜首花落谁家 - 奢侈品回收评测
  • 普通学生学AI,重点是把工具变成解决问题的能力
  • 2026 智能外呼系统实测排行:综合能力出众,数企 AI 成企业降本优选 - 兔兔不是荼荼