二叉树的层次遍历

请高手解释一下二叉树的层次遍历的精髓,最好是能用数学思维的,不只是敲出代码。谢谢。... 请高手解释一下二叉树的层次遍历的精髓,最好是能用数学思维的,不只是敲出代码。谢谢。 展开
 我来答
子夜杨旭
推荐于2018-01-24 · TA获得超过505个赞
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
设计一个算法层序遍历二叉树(同一层从左到右访问)。思想:用一个队列保存被访问的当前节点的左右孩子以实现层序遍历。
void HierarchyBiTree(BiTree Root){
LinkQueue *Q; // 保存当前节点的左右孩子的队列

InitQueue(Q); // 初始化队列

if (Root == NULL) return ; //树为空则返回
BiNode *p = Root; // 临时保存树根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); // 若存在右孩子,右孩子进队列
}

DestroyQueue(Q); // 释放队列空间
return ;
这个已经很详细了!你一定可以看懂的!加油啊!
pxuxian
2010-11-07
知道答主
回答量:30
采纳率:0%
帮助的人:12.9万
展开全部
树: A
/ \
B F
/ \ \
C D G
/ \
E F
从上到下,从左到右:A、B、F、C、D、G、E、F
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科
2020-12-25 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.3亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网名plus
2018-06-17
知道答主
回答量:1
采纳率:0%
帮助的人:866
展开全部
void level (BTNode *p)
{
int front,rear;
BTNode *que[maxSize];
front=rear=0;
BTNode *q;
if(p!=NULL){
rear=(rear+1)%maxSize;
que[rear]=p;
while(front !=rear){
front =(front+1)%maxSize;
q=que[front];
Visit(q);
if(q->lchild!=NULL){
rear=(rear+1)%maxSize;
que[rear]=q->lchild;
}
if(q->rchild!=NULL){
rear=(rear+1)%maxSize;
que[rear]=q->rchild;
}}}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
抗之VJ
2010-11-07 · TA获得超过201个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:165万
展开全部
按层来,从左往右数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式