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

【数据结构】二叉树——判断是否为完全二叉树

一、思路

有完全二叉树的解释
我们想要判断二叉树是否为完全二叉树
我们可以用队列来实现
我们先将根节点入队列
再将根节点出队列,判断取出节点是否为空、

若不为空将该节点的左右节点入队列
左右节点为空也入队列

若为空则停止入队列
然后判断队列中是否有 NULL

若有则说明不是完全二叉树
若没有则说明是完全二叉树

在这里插入图片描述

在这里插入图片描述

二、代码实现

队列的代码

//判断是否为完全二叉树
bool BTComplete(BTNode* php)
{//创建队列Queue p;QueueInit(&p);//将根节点入栈QueuePush(&p, php);while (!QueueEmpty(&p)){//取出队首节点并删除QueueDateType cp = QueueFront(&p);QueuePop(&p);//判断取出节点是否为空if (cp == NULL){break;}//将左右节点入队列QueuePush(&p, cp->left);QueuePush(&p, cp->right);}//判断队列中是否有其他元素while (!QueueEmpty(&p)){//取出队首节点并删除QueueDateType cp = QueueFront(&p);QueuePop(&p);//判断节点中是否有数据if (cp != NULL){QueueDesTroy(&p);return false;}}//队列销毁QueueDesTroy(&p);return true;
}

http://www.mrgr.cn/news/65032.html

相关文章:

  • 你敢想象吗?我能远程控制家里的电脑进入Bios
  • 企业AI助理驱动的决策支持:从数据洞察到战略执行
  • 低压补偿控制器维修措施
  • 性能小钢炮,核显玩3A,最值得买的 8745HS 迷你主机『零刻SER8』,2099的价格是真的香
  • OpenCV中使用EdgeDrawing模块查找圆
  • 运营篇|微信公众号如何关联安全知识学习小程序
  • 【AD】2-1 元件符号的绘制创建实例-电阻容/CHIP类器件
  • 网络层3——IP数据报转发的过程
  • 70B的模型需要多少张A10的卡可以部署成功,如果使用vLLM
  • 正向解析和反向解析
  • 【Vue框架】用 Vue 的时候应该选 JS 还是 TS?全面解析与实用建议
  • 【文献及模型、制图分享】中国城市家庭食物浪费行为及减量对策——以郑州市为例
  • LeetCode 876. 链表的中间结点
  • 中断处理和DMA(Direct Memory Access,直接内存访问)
  • C#-类:声明类、声明类对象
  • 中间件之XXL-Job
  • 软考-数据结构
  • jmeter基础01-2_环境准备-Mac系统安装jdk
  • SIGNAL TAP使用记录
  • PyTorch实战-手写数字识别-CNN模型
  • MDK 平台下弱声明函数实现后不能执行原因排查
  • 第04章 MySQL图形化管理工具的介绍
  • 别人卷技术,我们卷变现。。。
  • 深入理解 ZooKeeper:分布式协调服务的核心与应用
  • 研究了100个小绿书十万加之后,我们发现2024小绿书独家秘籍就是:在于“先抄后超,持续出摊,量大管饱”!
  • 「Mac畅玩鸿蒙与硬件25」UI互动应用篇2 - 计时器应用实现