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

二叉树的层序遍历及完全二叉树的判断

文章目录

1.二叉树层序遍历

2.完全二叉树的判断

文章内容

1.二叉树层序遍历

        二叉树的层序遍历需要一个队列来帮助实现。

        我们在队列中存储的是节点的地址,所以我们要对队列结构体的数据域重定义,

        

 

        以上代码 从逻辑上来讲就是1入队,1出队,2(1的左孩子)入队,4(1的右孩子)入队,2出队......

//层序遍历
void LevelOrder(BTNode* root)
{Que q;QueueInit(&q);if (root){QueuePush(&q,root);}while (!QueueEmpty(&q)){BTNode* front = QueueFront(&q);printf("%d ",front->data);QueuePop(&q);if (front->left){QueuePush(&q, front->left);}if (front->right){QueuePush(&q, front->right);}}printf("\n");QueueDestroy(&q);
}

2.完全二叉树的判断

        完全二叉树的判断和二叉树的层序的思想差不多,都需要借助队列来实现。

 

 

bool TreeComplete(BTNode* root)
{Que q;QueueInit(&q);if (root){QueuePush(&q, root);}while (!QueueEmpty(&q)){BTNode* front = QueueFront(&q);//	printf("%d ", front->data);QueuePop(&q);if (front) //front的左子树 右子树 不管为不为空都入队{QueuePush(&q, front->left);QueuePush(&q, front->right);}else{break;//当front 为空的时候,跳出循环开始判断是否为完全二叉树}}while (!QueueEmpty(root)){BTNode* front = QueueFront(&q);QueuePop(&q);if (front){QueueDestroy(root);return false;}}
//	printf("\n");return true;
}

http://www.lryc.cn/news/140812.html

相关文章:

  • java八股文面试[JVM]——JVM内存结构
  • Kafka基本使用
  • 【目标检测】理论篇(2)YOLOv3网络构架及其代码实现
  • k8s之工作负载、Deployment、DaemonSet、StatefulSet、Job、CronJob及GC
  • IDEA项目实践——Element UI概述
  • Docker 容器学习笔记
  • Day03-vue基础
  • RAC sid=‘*‘ 最好加上 v$system_parameter
  • 【位运算进阶之----左移(<<)】
  • 石油石化行业网络监控运维方案,全局态势感知,实时预警
  • MyBatis 的关联关系配置 一对多,一对一,多对多 关系的映射处理
  • Diffusion Models for Image Restoration and Enhancement – A Comprehensive Survey
  • Springboot开发所遇问题(持续更新)
  • 智能电视与win10电脑后续无法实现DLNA屏幕共享
  • 如何可以管理监督员工工作微信?
  • 【Django】如何转化已有的数据表到Django模型--20230823
  • 【C语言】喝汽水问题
  • 项目进度管理(4-2)关键链法和关键路径法的区别和联系
  • 基于Java+SpringBoot+Vue前后端分离医院后台管理系统设计和实现
  • 二维数组传参
  • AI 绘画Stable Diffusion 研究(十四)SD 图生图+剪映制作人物说话视频
  • ProPlot 基本语法及特点
  • element-template-admin get请求正常 post请求超市问题
  • Promise.all和promise.race的应用场景举例
  • go学习-指针 标识符
  • LeetCode--HOT100题(42)
  • leetcode-49.字母异位词分组-day20
  • YOLOv8教程系列:三、K折交叉验证——让你的每一份标注数据都物尽其用(yolov8目标检测+k折交叉验证法)
  • leetcode算法题--表示数值的字符串
  • Docker安装及Docker构建简易版Hadoop生态