二叉树的层序遍历,和用堆栈先序遍历

2022/1/28 23:37:36

本文主要是介绍二叉树的层序遍历,和用堆栈先序遍历,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

队列实现层序遍历,以及改为堆栈先序遍历

#include<iostream>
using namespace std;
typedef int ElemType;
typedef struct BinTree
{
	ElemType data;
	struct BinTree* Left;
	struct BinTree* Right;
}BinTree;
typedef struct Queue
{
	ElemType data;
	struct Queue* Frond;
	struct Queue* rear;
}Queue;
void LevelOrderTraversal(BinTree* BT)//层序遍历,用队列
{
	Queue* Q;
	BinTree* T;
	if(!BT)return ;
	Q=CreatQueue(MaxSize);//创建并初始化队列
	AddQ(Q,BT);
	while(!IsEmpty(Q))
	{
		T=Delete(Q);
		cout<<T->data<<" ";
		if(T->Left) Add(Q,T->Left);//加入队列
		if(T->Right) Add(Q,T->Right);
	}
}
//可以用堆栈来实现二叉树的先序遍历
//即对调左右子树的加入顺序先Add(Q,T->Right),后Add(Q,T->Left),再;


这篇关于二叉树的层序遍历,和用堆栈先序遍历的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程