最新要闻
- 《流浪地球2》全球爆火背后!《三体》导演:中国科幻的内核是文化自信
- 神十五航天员首次出舱视频公布:和地球同框 绝美
- 每日速看!方向盘助力失灵、AEB抽风!车主:百年凯迪拉克毁于LYRIQ 绝望
- 速递!Android 14来了:提升续航和流畅度
- 《狂飙》片头被指抄袭 网友放对比照跟国外一电影太相似:背后公司被扒
- 全球热点评!网民称《水浒》应从中小学课文中清除 毒害更多人:浙江官方回应了
- 24岁生日当天崩了!腾讯QQ回应:服务器挤爆了 现已恢复
- 【全球报资讯】酒剑仙拿狙蚌埠住了 《仙剑奇侠传》五位角色入驻《和平精英》
- 环球即时看!24亿巨制大片 《速度与激情10》开启预售 片长130分钟
- 天天热点!魅族20 Pro外观偷跑:矩阵三摄 纯白机身太吸睛
- 世界今日报丨年轻人别以赚钱为目标!张朝阳称别把考试太当回事:不一定非上好大学
- 天天即时:中国在土耳其建造电站强震中未受损:稳定保障救援电力供应
- 实时焦点:微软公布ChatGPT版Bing不到48小时:申请用户量已超百万
- 投诉不断 极氪被爆出现大规模动力故障 官方回应:会升级
- 焦点讯息:昆虫学硕士因表演双节棍获得工作 2000万粉大V感慨:掌握一门手艺很重要
- 当前报道:手机QQ崩了:显示无网络 你消息接收正常吗?
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
[数据结构] 二叉树的层次遍历
(资料图片)
二叉树的层次遍历
层次遍历的思路
二叉树的层次遍历本质上用的是广度优先搜索算法,我们通常使用队列来实现这一过程。
层次遍历的基本步骤
(1)先将二叉树的根节点放入队列中;(2)取队首节点值,队首节点出队,将节点的左右子树根节点入队;(3)重复步骤(2),直到队列为空。
层次遍历图解
自建队列层次遍历
typedef struct SqQueue{ BinaryTree data[MAXSIZE]; int front; int rear;}SqQueue;SqQueue Q; //设为全局变量//队列初始化void Create_SqQueue(){ Q.front = Q.rear = 0;}//判断队列是否为空bool IsEmpty(){ return Q.front == Q.rear;}//返回队列当前大小int QueueSize(){ return Q.rear - Q.front;}//入队 利用队列 层次输入void Push(BinaryTree T){ Q.data[++Q.rear] = T;}//出队并取队首 利用队列 层次输出BinaryTree Pop(){ return Q.data[++Q.front];}//层次遍历二叉树 利用自己写的队列void Show_Level_Order(BinaryTree root){ BinaryTree t = NULL; if(!root) return; Push(root); while(!IsEmpty()){ int n = QueueSize(); //取二叉树每层的节点个数 for(int i = 0; i < n; i++){ t = Pop(); printf("%c ", t->data); if(t->leftchild) Push(t->leftchild); //探索左子树 if(t->rightchild) Push(t->rightchild); //探索右子树 } printf("\n"); }}
STL queue层次遍历
//利用STL标准库queue层次遍历void Show_Level_OrderSTL(BinaryTree root){ BinaryTree t = NULL; std::queue q; if(!root) return; q.push(root); while(!q.empty()){ int n = q.size(); for(int i = 0; i < n; i++){ t = q.front(); q.pop(); printf("%c ", t->data); if(t->leftchild) q.push(t->leftchild); if(t->rightchild) q.push(t->rightchild); } printf("\n"); }}
完整程序
代码
点击查看代码
//#define _CRT_SECURE_NO_WARNINGS 1#include#include#include#define MAXSIZE 1000typedef char Elemtype;typedef struct BiNode{ Elemtype data; struct BiNode *leftchild; //左儿子 struct BiNode *rightchild; //右儿子} Node, *BinaryTree; //BinaryTree结构体指针typedef struct SqQueue{BinaryTree data[MAXSIZE];int front;int rear;}SqQueue;SqQueue Q; //设为全局变量//队列初始化void Create_SqQueue(){Q.front = Q.rear = 0;}//判断队列是否为空bool IsEmpty(){return Q.front == Q.rear;}//返回队列当前大小int QueueSize(){ return Q.rear - Q.front;}//入队 利用队列 层次输入void Push(BinaryTree T){Q.data[++Q.rear] = T;}//出队并取队首 利用队列 层次输出BinaryTree Pop(){return Q.data[++Q.front];}//层次遍历二叉树 利用自己写的队列void Show_Level_Order(BinaryTree root){BinaryTree t = NULL;if(!root) return;Push(root);while(!IsEmpty()){int n = QueueSize(); //取二叉树每层的节点个数for(int i = 0; i < n; i++){t = Pop(); printf("%c ", t->data); if(t->leftchild) Push(t->leftchild); //探索左子树 if(t->rightchild) Push(t->rightchild); //探索右子树}printf("\n");}}/*————————————————————————————————— 2 —————————————————————————————————————*///利用STL标准库queue层次遍历void Show_Level_OrderSTL(BinaryTree root){BinaryTree t = NULL;std::queue q;if(!root) return;q.push(root);while(!q.empty()){int n = q.size();for(int i = 0; i < n; i++){t = q.front();q.pop();printf("%c ", t->data);if(t->leftchild) q.push(t->leftchild);if(t->rightchild) q.push(t->rightchild);}printf("\n");}}//创建二叉树BinaryTree Create_BinaryTree(){Elemtype data;BinaryTree T;scanf("%c", &data); //输入节点数据getchar();if(data == "#") //输入#以停止创建子树return NULL; T = (BinaryTree)malloc(sizeof(Node)); T->data = data; printf("输入 %c 的左儿子数据(#停止): ", data); //递归创建左子树 T->leftchild = Create_BinaryTree(); printf("输入 %c 的右儿子数据(#停止): ", data); //递归创建右子树 T->rightchild = Create_BinaryTree(); return T;}int main(){BinaryTree T;printf("输入二叉树根节点数据: ");T = Create_BinaryTree();Create_SqQueue();printf("\n\n层次遍历二叉树结果: \n");Show_Level_Order(T);printf("\n");Show_Level_OrderSTL(T);}
运行结果
[数据结构] 二叉树的层次遍历
全球实时:JVM sandbox 实现热修复示例
《流浪地球2》全球爆火背后!《三体》导演:中国科幻的内核是文化自信
神十五航天员首次出舱视频公布:和地球同框 绝美
每日速看!方向盘助力失灵、AEB抽风!车主:百年凯迪拉克毁于LYRIQ 绝望
速递!Android 14来了:提升续航和流畅度
《狂飙》片头被指抄袭 网友放对比照跟国外一电影太相似:背后公司被扒
环球资讯:剖析字节案例,火山引擎 A/B 测试 DataTester 如何“嵌入”技术研发流程
Docker安装使用Kafka
每日动态!机器学习-KNN
全球热点评!网民称《水浒》应从中小学课文中清除 毒害更多人:浙江官方回应了
24岁生日当天崩了!腾讯QQ回应:服务器挤爆了 现已恢复
【全球报资讯】酒剑仙拿狙蚌埠住了 《仙剑奇侠传》五位角色入驻《和平精英》
如何注册 ChatGPT ,OpenAI
每日头条!A/B测试教程_编程入门自学教程_菜鸟教程-免费教程分享
环球即时看!24亿巨制大片 《速度与激情10》开启预售 片长130分钟
天天热点!魅族20 Pro外观偷跑:矩阵三摄 纯白机身太吸睛
世界今日报丨年轻人别以赚钱为目标!张朝阳称别把考试太当回事:不一定非上好大学
天天即时:中国在土耳其建造电站强震中未受损:稳定保障救援电力供应
实时焦点:微软公布ChatGPT版Bing不到48小时:申请用户量已超百万
天天热推荐:01-数据结构与算法-目录索引
环球快消息!keycloak~再说session和token
学习笔记——redis集群(定义、集群连接、查看集群、节点分配方式、插槽、集群中录入值、查询集群中的值、故障恢复)
滴滴一面:order by 调优10倍,思路是啥?
投诉不断 极氪被爆出现大规模动力故障 官方回应:会升级
焦点讯息:昆虫学硕士因表演双节棍获得工作 2000万粉大V感慨:掌握一门手艺很重要
当前报道:手机QQ崩了:显示无网络 你消息接收正常吗?
【环球新要闻】Moment推出1.55X变形镜头:iPhone也能拍出电影级超宽照片
十八罗汉分别叫什么?十八罗汉排名及顺序
马前泼水指的是什么生肖?马前泼水这个故事是什么意思?
巴黎恋人的结局是什么?巴黎恋人演员表
手净欲摸杯是什么意思?手净欲摸杯的出处是哪里?
环球观点:Linux 命令大全:2万字实现Linux自由
20088乐队现在怎么样?20088乐队现在怎么样了?
milo显示器是什么牌子?milo显示器怎么样?
ec文件是什么的简称?ec文件怎么打开?
神舟笔记本如何下载安装软件?神舟笔记本如何下载驱动?
tplink路由器怎么设置端口映射?tplink路由器怎么重新设置密码?
冰箱电磁阀怎么判断好坏?冰箱电磁阀的颜色代表什么?
票房榜前10稳了!《流浪地球2》总票房突破35亿 官方公布月球美术设计
每日信息:丰田皇冠遭车主集体投诉:空调管短了 漏水漏风
腾讯严惩《和平精英》外挂 一大批玩家一觉醒来发现被封号10年
高速特斯拉自动驾驶 驾驶员座位上睡觉!网友:保险赔吗?
世界实时:女子应聘人事被要求身高1米63以上 追问HR被回怼:不自信就不用了解了
最新资讯:keycloak~JWT没有被持久化_是因为你对方法论理解不到位
快喝不起了!农夫山泉涨价:纯净水、矿泉水啥区别、到底哪个好?
天天微头条丨在ChatGPT眼里 未来的汽车竟长这模样
天天快报!ChatGPT引发失业恐慌?这20种工作要避开:含医生、快递员
天天新动态:果然“超级奶爸”!李想晒六口全家福:期待五胎到来
订单充足不愁卖 国产特斯拉Model Y入门版涨价:贵了2000
环球滚动:学习笔记——redis持久化之RDB、AOF
BigDecimal加减乘除运算整合工具类
天天新资讯:4年还完20万欠款!夫妻回应剪掉名下所有信用卡 告别卡奴引网友感叹
天天热文:Win11又出严重bug:Intel用户程序崩溃 AMD躲过一劫
世界热点!1600人失业 老牌互联网巨头雅虎裁员20%:离职补偿未定
世界讯息:开窍!iPhone 15摄像头终于要升级:苹果设计让人抓狂 背部凸起更严重
环球视讯!3499元爆火!真我GT Neo5 1T版抢购一空:2023年旗舰射门员
世界最资讯丨日本国产大飞机失败:三菱重工不服输 自研新一代战机
天天看点:读Java实战(第二版)笔记06_新的日期和时间API
世界时讯:NVIDIA发布GeForce 528.49驱动:首发支持史上最强移动显卡
全球实时:网友50000元攒机 到底是不是大冤种?
今日热闻!基于高层次综合器(Vivado HLS)的硬件优化[原创www.cnblogs.com/helesheng]
你同意?张朝阳:《流浪地球2》跟好莱坞还是没法比
【天天时快讯】奇葩!哈尔滨机场一旅客为逃避安检把活蜗牛藏嘴里
环球热议:Google放大招对抗ChatGPT:结果低级答错题 市值蒸发1000亿
微头条丨单枪匹马也能拍大片!这次又让大疆给拿捏了
快资讯:史上最强AMD显卡!撼迅正式发布水冷RX 7900 XTX 还是单插槽
Spring配置类理解(Lite模式和Full模式)
环球速讯:JAVA中如何判断一个ResultSet结果集是否为空
【天天速看料】MYSQL脱敏 || 给开发人员限制权限,保证mysql数据库数据安全
重点聚焦!小白也能做应用(二)之fusion app增加B站视频页面
每日观点:法国调香师夸国产花露水清新还美丽 要卖450元 网友:六神YYDS
MATLAB 实现点云累计-坐标系转换-目标范围点云提取(附代码与代码注释)
【全球快播报】面向对象知识点汇总(小白必会)
(一)浅谈人工智能:ChatGPT
《蚁人3》女儿凯茜中文预告公布 首映礼美艳图赏
环球热消息:【一句话】@Configuration和@Component的区别
世界看热讯:《分布式技术原理与算法解析》学习笔记Day06
焦点消息!ASP.NET Core+Element+SQL Server开发校园图书管理系统(完)
全球看点:if else 代码优化实战
全球动态:网络协议-ssh基础
当前关注:重回中国!福建13岁女孩4.82秒打破鲁班锁世界纪录
今日讯!ROG新款幻14笔记本即将上市:锐龙9 7940HS 可选RTX 4060
免费用!中国信通院全球网测APP iOS版上线:支持5G/千兆接入测速
速读:71款任选 森马T恤33元清仓手慢无
动态:祝福!比尔盖茨有新女友了 身家超33亿女富婆:双方沉默 前妻也有新恋情
完美收官!《三体》电视剧最后5集被赞爆:老外满分刷屏
快看:80km续航 雅迪电动车DN2千元秒杀:2699元起还是新国标
Copula
今亮点!女子熬夜看《狂飙》:患高启强同款干眼症
世界热头条丨逆天 韩国学生用ChatGPT写论文“喜”提0分 校方:剽窃!
快资讯:再续一个月:《阿凡达:水之道》再次宣布延长上映
28款CPU性能实测:Intel实力屠榜 AMD游戏神U赢回面子
全球消息!全国首座高速公路重卡充换电站亮相:电池包350kWh 3分钟自动换电
基于图的下一代入侵检测系统
环球快资讯丨MySQL——性能优化的关注点
天天简讯:记录--Cesium+Vue实战教程——地图导航
世界关注:人工智能(Python)教程_编程入门自学教程_菜鸟教程-免费教程分享
天天要闻:安卓常用shell命令大全
环球视点!无损压缩鼻祖去世了 没有他就没有今天的Zip、PNG、PDF