层次遍历二叉树
2011-04-09 20:37
218 查看
//====利用 "先进先出 "(FIFO)队列,按层次遍历二叉树==========
void Levelorder(BinTree T)
{
int front=0,rear=1;
BinTNode *cq[Max],*p; //定义结点的指针数组cq
cq[1]=T; //根入队
while(front!=rear)
{
front=(front+1)%NodeNum;//NodeNum为结点总数
p=cq[front]; //出队
printf( "%c ",p-> data); //出队,输出结点的值
if(p-> lchild!=NULL)
{
rear=(rear+1)%NodeNum;
cq[rear]=p-> lchild; //左子树入队
}
if(p-> rchild!=NULL)
{
rear=(rear+1)%NodeNum;
cq[rear]=p-> rchild; //右子树入队
}
}
}
void Levelorder(BinTree T)
{
int front=0,rear=1;
BinTNode *cq[Max],*p; //定义结点的指针数组cq
cq[1]=T; //根入队
while(front!=rear)
{
front=(front+1)%NodeNum;//NodeNum为结点总数
p=cq[front]; //出队
printf( "%c ",p-> data); //出队,输出结点的值
if(p-> lchild!=NULL)
{
rear=(rear+1)%NodeNum;
cq[rear]=p-> lchild; //左子树入队
}
if(p-> rchild!=NULL)
{
rear=(rear+1)%NodeNum;
cq[rear]=p-> rchild; //右子树入队
}
}
}
相关文章推荐
- 【面试】基于二叉树层次遍历相关问题的求解
- 已知二叉树的中序前序遍历,还原树结构+层次遍历
- 数据结构(六)——二叉树 前序、中序、后序、层次遍历及非递归实现 查找、统计个数、比较、求深度的递归实现
- 树(5)二叉树层次遍历的应用
- 数据结构与算法系列-树-二叉树的遍历(按层次遍历)
- Uva 11234 Expressions (二叉树的层次遍历)
- 二叉树的层次遍历
- 面试题:二叉树的层次遍历,包括定制树的建立
- 利用队列对二叉树进行层次遍历
- 二叉树的层次遍历
- 二叉树的层次遍历
- 二叉树高度,栈实现二叉树的先序,中序,后序遍历的非递归遍历,二叉树层次遍历
- 二叉树的层次遍历
- 按行输出,之字形输出,翻转二叉树----层次遍历的应用
- 二叉树(2)层次遍历
- 层次遍历二叉树-三种不同的方法
- 【二叉树】层次遍历二叉树以及判断一棵树是否是完全二叉树
- 二叉树的层次遍历
- 二叉树的先序、中序、后序、层次遍历的递归和非递归解法
- 二叉树的层次遍历