当前位置 : 主页 > 编程语言 > c语言 >

数据结构-->二叉树_03

来源:互联网 收集:自由互联 发布时间:2023-09-07
各位老友,欢迎来到本期博文!本期将继续进行二叉树的学习!! 本期涉及内容包括 : 二叉树层序遍历,布尔判断二叉树(是不是二叉树) 那么重点来了,我们该如何实现 层序遍历

各位老友,欢迎来到本期博文!本期将继续进行二叉树的学习!!

本期涉及内容包括 :> 二叉树层序遍历,布尔判断二叉树(是不是二叉树)

那么重点来了,我们该如何实现 层序遍历!以及什么是层序遍历!?

-----> 层序遍历:自根至叶子结点(自上而下)每一层每一层遍历打印,而每一层的遍历又是从子左子树到右子树

那么,该如何实现呢!

------> 其实,接下来写的是用队列来实现的!如此,队列的作用就派上了用场,队列遵循先进先出!

其实,用队列去实现层序遍历是最常用的,也是最为高效的!!

而在代码逻辑上是最为清晰的,有章可循的,至少在一定程度上,降低了用其他方法带来的冗长与赘余!!

注意,这里不再展示队列书写!!请老友们自行观看,前几期的博文!

现在上手代码 :>

//二叉树层序遍历
#include "Queue.h"
void TreeLevel(BTNode* root)
{
	Queue q;
  QueueInitial(&q);
  
  if(root)
  {
  	QueuePush(&q, root);
  }
  
  while(!QueueEmpty(&q))
  {
  	BTNode* front = QueueFront(&q);
    QueuePop(&q);
    printf("%d ", front ->data);
    
    if(front ->leftChild)
    {
    	QueuePush(&q, front ->leftChild);
    }
    
    if(front ->rightBrother)
    {
    	QueuePush(&q, front ->rightBrother);
   	}
  }
  QueueDestroy(&q);
}

为了方便各位老友有较好的观感体验!!

数据结构-->二叉树_03_层序遍历


现在,继续推进!该如何实现布尔判断二叉树?

答案是,队列!至于缘由,还是在比较了各种方法之间,队列的布尔判断是最高效,也是代码逻辑最为简洁明了的!!哈

上一篇:栈的应用举例——括号匹配
下一篇:没有了
网友评论