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

岳阳网站开发报价小程序设计用什么软件

岳阳网站开发报价,小程序设计用什么软件,如何建造网站视频教程,旅游网官网首页前言:二叉树的实现方式多种多样,有数组实现满二叉树,有链表实现完全二叉树,今天我们就用队列来实现二叉树。 创建二叉树: 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.yayakq.cn/news/528592/

相关文章:

  • 深圳网站公司建设方案丹东静态管理
  • 网站开发需要哪些证书淘宝客建立网站
  • 模板网站与定制网站区别青岛外贸推广
  • 企业网站建设中在方案设计上注册代理公司需要什么条件
  • phpcms 多语言网站大型网站系统架构
  • 网站维护一般做什么邢台市最新征婚
  • 凯里网站设计大良营销网站建设教程
  • 网站开发 word文件预览wordpress 代码调用
  • 局机关建设网站的意义优化网站推广
  • 陕西做网站的株洲网站建设费用
  • 做saas平台网站thinkphp企业网站系统
  • 绵阳市城市建设档案馆网站微信免费小程序开发平台
  • 汶上手机网站建设教育公司网站建设文案
  • 怎样使用网站后台的模板山东建筑公司实力排名
  • 番禺做网站最便宜的哪家公司盘县 网站建设
  • 专业网站制作公司招聘wordpress访问满
  • 12306网站开发过程wordpress自动添加关键字
  • 广告设计图网站如何做超市的网站
  • 计算机做网站开题报告服务器添加网站
  • 建站网站 国外建立组词
  • 呼伦贝尔网站建设平台微网站模板制作
  • 做网站 深圳重庆观音桥好吃街
  • 自己写小说的网站网站建设方案和报价表
  • 珠宝类企业网站(手机端)网站建设专题的意义
  • 自己可以做网站生意好做吗ui设计做网站
  • 制作触屏版网站开发百度网站做pc自适应
  • 2015网站设计风格上海网站建设seo
  • 小猫mip网站建设公司名称大全及最新
  • 局域网站点建设方案网站开发总体设计
  • 新沂建设网站wordpress 友言