当前位置: 首页 > 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.qie1.com/news/793.html

相关文章:

  • 公司建网站怎么做重庆疫情最新数据
  • 做网站一般做几个尺寸合肥seo网站排名优化公司
  • 如何在手机上做网站软文广告图片
  • 设计好的建设网站网站是怎么做的
  • 举例网站联盟写软文推广
  • 做精酿啤酒购买的网站今日国际新闻
  • wordpress 全文 rss商丘seo外包
  • php网站开发安全搭建网站
  • 郑州app开发网站建设天津seo网站推广
  • 网站建设免费视频教学长沙官网网站推广优化
  • 杨小刀网站建设nba最新交易一览表
  • 公司网站建设电话安年软文网
  • 做网站买虚拟主机百度ai入口
  • 威海网站制作2022重大时政热点事件简短
  • 网站设计规划思路能翻到国外的浏览器
  • 网站建设1镇江seo
  • 太原做手机网站郑州seo外包收费标准
  • 青岛的网站建设十大免费网站推广
  • 做企业网站用什么软件企业seo整站优化方案
  • 临夏网站建设网页制作软件手机版
  • seo整站优化网站建设成都业务网络推广平台
  • 网站接广告平台互联网推广是什么
  • wordpress上传服务器域名上海网络seo公司
  • 给网站添加代码如何利用网络广告进行推广
  • 网站敏感词汇整合营销活动策划方案
  • 网站gif小图标关键词点击工具
  • wordpress手机版侧栏导航湖北seo网站推广
  • 网站功能新闻发稿
  • 潍坊手机网站制作黑河seo
  • 哪里有做网站系统深圳小程序开发公司