当前位置:新励学网 > 秒知问答 > 二叉树的层次遍历

二叉树的层次遍历

发表时间:2024-08-24 09:44:55 来源:网友投稿

设计一个算法层序遍历二叉树(同一层从左到右访问)。

思想:用一个队列保存被访问的当前节点的左右孩子以实现层序遍历。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 ;这个已经很详细了!你一定可以看懂的!加油啊!

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!