广度优先遍历二叉树

学习目标:广度优先遍历二叉树

我是一个初学者,写这篇博客一是为了增加自己的记忆,以便于以后自己复习,当然希望有大神能对我纠错,嘻嘻。

学习内容:

  • [ 1] 广度优先遍历顾名思义,一层一层的输出二叉树每一个节点的信息。就像她一层一层剥开我的洋葱心。

学习步骤:

  1. 首先应该创建一个队列,而队列里存储的便是二叉树每一个节点的地址。
  2. 大家看一下代码就能明白。
  3. 二叉树节点
  4. 代码不规范,哈哈。
//二叉树节点的结构体
	typedef char Elemtype;
	typedef struct _Node 
	{
		Elemtype data;
		struct  _Node *Lchild;
		struct  _Node *Rchild;
	}Node,*PNode;
	typedef struct 
	{
		PNode *arr;
		int pront;
		int rear;
	}Queue;
	以下方法就不一一写了。
	队列的入队: void Push(Queue &Q,PNode P);
	队列的初始化: void InitQueue(Queue &Q);
	队列的出对: void Pop(Queue &Q,PNode &P);
	队列的判断是否为空: bool Empty(Queue Q);
	二叉树的创建: void Cratet(PNode &T);
	void Strave(PNode T)
	{
		Queue Q;//定义队列
		PNode Temp=NULL;//用来接收队列出来的地址
		InitQueue(Q);//初始化队列
		if(T)//判断根节点是否为空
		{
		Push(Q,T);
			while(Empty(Q))
			{
				Pop(Q,Temp);
				printf("%c",Temp->data);
				if(Temp->Lchild)
				{
				Push(Q,T->Lchild);
				}
				if(Temp->Rchild)
				{
				Push(Q,Temp->Rchild);
				}//if
			}//while
		}//if
	}
	

在这里插入图片描述

学习结论:

  1. 关于二叉树的广度优先遍历,大家应该能明白了。
  2. 非常简单明白,清晰。
  3. 广度优先遍历二叉树并不是非一定要从左往右输出,只是习惯而已。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值