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

青岛科技街网站建设关键词优化seo多少钱一年

青岛科技街网站建设,关键词优化seo多少钱一年,泉州服装网站建设,建设局职责目录 实现思路 代码实现 之前介绍了二叉树的前、中、后序三种遍历,采用的是递归的方式。今天我们来学习另外一种遍历方式——层序遍历。层序遍历不容小觑,虽然实现方法并不难,但是它所采取的思路是很值得学习的,与前三者不同&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.zhongyajixie.com/news/33650.html

相关文章:

  • 网站开发的规格描述网站怎么做外链
  • 怎么做代理网站百度一下子就知道了
  • 武威 网站建设怎么发布信息到百度
  • 毕业设计网站设计步骤推广管理
  • 网站开发和设计青岛seo排名扣费
  • 网站建设是设计师吗低价刷粉网站推广
  • 昆山网站制作哪家强深圳网络推广网站
  • 中华人民共和国城乡建设部网站首页最新热搜榜
  • 杭州互联网企业360优化大师下载
  • 做php网站前端合肥网
  • jsp 响应式网站模板梅花seo 快速排名软件
  • 烟台市建设工程招标投标协会网站电子商务培训
  • 网站建设时 网站信息可以边建设边组织新的seo网站优化排名 排名
  • 东坑做网站qq关键词排名优化
  • 汕头网站设计有限公司百度网盘网页版登录首页
  • 自己搭建网站只有文字产品销售方案与营销策略
  • 丹东网站建设公司seo还可以做哪些推广
  • 做公司网站应准备什么材料百度权重4网站值多少钱
  • 抓取资源的网站怎么做小学生简短小新闻
  • 温州网站公司哪家好网络视频营销的案例
  • 网站开发兼容一级域名好还是二级域名好
  • 楼盘设计师工资一般多少百度seo点击器
  • 优化seo培训班网络营销优化推广公司
  • 做视频直播网站需要办理什么资质谷歌google官网入口
  • 网站投入费用百度知道入口
  • 大连 建网站网络加速器
  • dreamweaver8可以做资源下载网站境外电商有哪些平台
  • 北京做公司网站企业网络宣传推广方案
  • 携程网站建设进度及实施过程全网引流推广 价格
  • 网站建设服班级优化大师电脑版