二叉树怎么按层输出 二叉树的层次遍历?
浏览量:3115
时间:2021-03-14 03:56:34
作者:admin
二叉树的层次遍历?
设计一个遍历二叉树的算法(从左到右访问同一层)。思路:用队列保存当前节点的左右子节点,实现序列遍历。
Void hierarchy BiTree(BiTree root){
linkqueue*q//保存当前节点左右子节点的队列
initqueue(q)//初始化队列
if(root==null)return//树为空时返回
binode*P=root//将树根临时保存到指针P
visit(P->data)//访问根节点
if(P->lchild)enqueue(Q,P->lchild)//如果有左子级,左子级进入队列
if(P->rchild)enqueue(Q,P->rchild)//如果有右子级,右子级进入队列
while(!Queueempty(q))//如果队列不为空,则序列遍历{dequeue(q,P)//出队列
visit(P->data)//访问当前节点
if(P->lchild)enqueue(q,P->lchild)//如果有左子级,则左子级进入队列
if(P->rchild)enqueue(q,P->rchild)//如果有左子级右子,右子进入队列
}
destroy queue(q)//释放队列空间
return
这很详细!你能理解的!加油!
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。