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

网站制作公司兴田德润怎么联系团员个人信息查询官网

网站制作公司兴田德润怎么联系,团员个人信息查询官网,小程序代理方法,上海公司做网站的价格目录 实现思路 代码实现 之前介绍了二叉树的前、中、后序三种遍历,采用的是递归的方式。今天我们来学习另外一种遍历方式——层序遍历。层序遍历不容小觑,虽然实现方法并不难,但是它所采取的思路是很值得学习的,与前三者不同&am…

目录

实现思路

代码实现


之前介绍了二叉树的前、中、后序三种遍历,采用的是递归的方式。今天我们来学习另外一种遍历方式——层序遍历。层序遍历不容小觑,虽然实现方法并不难,但是它所采取的思路是很值得学习的,与前三者不同,我们将采用非递归的方式实现。

层序遍历:从二叉树的根节点出发(设根节点所在为第一层),从上到下,从左到右的一次访问第一、第二、第三......层的节点。

实现思路

我们将采用一种数据结构——队列来实现层序遍历。以这样的二叉树为例:

我们知道队列有个重要的性质,只能从队尾进数据,在队头出数据

因此我们先将 1 入队。

接着让队头的元素 1 出队。在 1 出队的同时有个约定:将 1 所在节点的左、右孩子入队;

接着让队头的元素 2 出队。在 2 出队的同时,将 2 所在节点的左、右孩子入队(若为空节点则不入队);

队头元素 4 出队,左、右孩子入队;

队头元素 3 出队,左、右孩子入队;

队头元素 5 出队,左、右孩子入队;

......

最后,队列为空即表示所有节点都已访问完毕。

代码实现

因为此处用到了队列的知识,若有不明白队列的童鞋可以去看看<队列>的概念&结构&实现【C语言版】小补一下哦。

//队列的初始化
void QueueInit(Queue* pq);
//释放malloc出的内存
void QueueDestroy(Queue* pq);
//入队
void QueuePush(Queue* pq, QDataType x);
//出队
void QueuePop(Queue* pq);
//获取队头的数据
QDataType QueueFront(Queue* pq);
//判断队列是否为空
bool QueueEmpty(Queue* pq);//层序遍历
void BinaryTreeLevelOrder(BTNode* root)
{Queue 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);
}

http://www.yayakq.cn/news/812305/

相关文章:

  • php做网站毕设答辩问什么seo伪原创工具
  • 实验室网站建设网站后台费用
  • wordpress仪表盘404哈尔滨网站优化技术
  • 怎么下学做衣服网站广东建筑人才网
  • 网站框架是怎么做的长沙网站建设icp备
  • 有了域名怎么做自己得网站网站建设有何好处
  • 全网营销网站建设临沂建设规划局网站
  • 网站是怎么做长沙网站优化体验
  • 郴州文明网网站磁力蜘蛛种子搜索
  • 网站客户评价太原百度关键词搜索
  • 淘宝客代理网站怎么做个人做外贸怎么做
  • 能够做渗透的网站wordpress 无法保存
  • 网站开发课程设计参考文献莆田有建设网站的公司码
  • 移动端网站建设 新闻动态wordpress官方主题
  • 网站设计英文翻译辽宁省建设信息网
  • 大城县建设局网站深圳家具网站建设
  • 网站建设有关图片qq飞车哪个公司开发的
  • 宁夏建设厅网站公示确实网站的建设目标
  • 建设网站盈利2015黄冈做网站价格
  • 中国建设银行青海分行网站唐山做企业网站的公司
  • 凡科网站手机投票怎么做码制作官网
  • 网站定制 天津泉州seo计费管理
  • 注册网站后邮箱收到邮件旅游网站建设分析
  • 建设模板网站wordpress 发邮件设置
  • 网站优化前景手机做wifi中继上外国网站
  • 哪个公司做网站建设好我的主页
  • 查重网站开发建设网站的申请
  • 网站四对联广告代码网站的优化
  • 网站的建设意义百度top排行榜
  • 网站 宕机 优化soho网站建设教程