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

手机智能建网站南宁360网

手机智能建网站,南宁360网,无备案网站微信,rdm响应式网站开发前言#xff1a;二叉树的实现方式多种多样#xff0c;有数组实现满二叉树#xff0c;有链表实现完全二叉树#xff0c;今天我们就用队列来实现二叉树。 创建二叉树#xff1a; typedef int BTDataType; typedef struct BinaryTreeNode {BTDataType data;struct BinaryTre… 前言二叉树的实现方式多种多样有数组实现满二叉树有链表实现完全二叉树今天我们就用队列来实现二叉树。 创建二叉树 typedef int BTDataType; typedef struct BinaryTreeNode {BTDataType data;struct BinaryTreeNode* left;struct BinaryTreeNode* right; }TreeNode;层序遍历 void LevelOrder(TreeNode* root) {Queue q;QueueInit(q);if (root)QueuePush(q, root);int levelSize 1;while (!QueueEmpty(q)){// 一层一层出while (levelSize--){TreeNode* front QueueFront(q);QueuePop(q);printf(%d , front-data);if (front-left)QueuePush(q, front-left);if (front-right)QueuePush(q, front-right);}printf(\n);levelSize QueueSize(q);}printf(\n);QueueDestroy(q); }我们的队列是用来存放二叉树节点的所以我们的目的是将节点一层一层的遍历出来所以我们的第一层是根节点我们把它放入队列出队列的时候就要带它的左子树和右子树节点进入队列那么我们怎么知道每层的节点数呢我们定义一个levelSize初始值为1。 我们的levelSize是每层的节点个数我们的节点个数因为在队列中所以我们的个数就等于队列的数据个数即levelSize QueueSize(q)我们通过循环让节点一层一层的出队列打印出来就达到了我们的目的。整个过程如下图所示 判断二叉树是否是完全二叉树 bool TreeComplete(TreeNode* root) {Queue q;QueueInit(q);if (root)QueuePush(q, root);int levelSize 1;while (!QueueEmpty(q)){TreeNode* front QueueFront(q);QueuePop(q);if (front NULL)break;QueuePush(q, front-left);QueuePush(q, front-right);}// 前面遇到空以后后面还有非空就不是完全二叉树while (!QueueEmpty(q)){TreeNode* front QueueFront(q);QueuePop(q);if (front){QueueDestroy(q);return false;}}QueueDestroy(q);return true; }我们这里同样按照节点的顺序给它入队列和出队列我们的levelSize控制每一层的数据我们的根节点出队列就将它的左子树和右子树带入队列如果中间有一个子树为空那么就退出循环但是我们后面如果还有不为空的节点也就是不连续的话那么就不是完全二叉树。 我们拿到2的左子树3后出队列再拿2的右子树2的右子树为空所以就结束循环我们在到队列里面取队列首元素再出队列队列的元素不为空说明二叉树不连续所以该树就不是完全二叉树反之就是完全二叉树。 如果对大家有帮助的话就支持一下吧感谢大家的支持
http://www.dnsts.com.cn/news/143659.html

相关文章:

  • 保险业网站建设新手学wordpress
  • 如何查看百度蜘蛛来过网站wordpress 配置ssl
  • 网站开发 简历项目经历长春市城建网站
  • 如何学会建网站新桥网站建设培训
  • 网站域名最便宜只用django做网站
  • 中国建设注册管理中心网站江门建设局网站
  • 昆明网站快速优化排名正规网站建设推荐谁好呢
  • 网站分为哪几种基于php的网站设计与实现
  • 云南电商网站开发推广方式有哪几种
  • 网站建设专用图形库如何免费简单建一个网站
  • 西安微信平台网站建设开通网站主机
  • wordpress导入网站文章设计师必备的6个网站
  • 安徽建设银行网站如何为网站做面包屑导航
  • 商城网站有哪些上海公司查询官网
  • 律师做几个网站wordpress4.9 多站点
  • 苏州建设厅网站深圳市外贸公司
  • 公司支付网站款做凭证免费网站建设案例
  • 织梦网站修改使用教程优化营商环境工作总结
  • 网站建设公司模板专业建设的基本要素
  • 新建网站seo优化怎么做柘林网站建设
  • 网站开发完整教程网站开发需要自己写代码吗
  • 北京商城网站设计网站设计制作用软件
  • 网站内页做友链专门做悬疑推理小说的阅读网站
  • 上海教育网站前置审批科技网站设计
  • 孟村做网站价格新手网站设计定价
  • 如何做网站推广方法装饰公司在哪个网站上接活
  • 大型搜索网站开发edm营销网站
  • 网站做字工具wordpress漏洞破解
  • 京东电子商务网站建设wordpress崩溃
  • 招聘网站数据分析怎么做网站建设开发费入什么科目