数据结构例程――二叉树的层次遍历算法
来源:程序员人生 发布时间:2016-03-28 17:34:14 阅读次数:3201次
本文是数据结构基础系列(6):树和2叉树中第12课时层次遍历算法的例程。
【2叉树的层次遍历算法】
实现2叉树的层次遍历算法,并对用”A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”创建的2叉树进行测试。
请利用2叉树算法库。
[参考解答](btreee.h见算法库)
#include #include "btree.h" void LevelOrder(BTNode *b)
{
BTNode *p;
BTNode *qu[MaxSize]; int front,rear; front=rear=-1; rear++;
qu[rear]=b; while (front!=rear) {
front=(front+1)%MaxSize;
p=qu[front]; printf("%c ",p->data); if (p->lchild!=NULL) {
rear=(rear+1)%MaxSize;
qu[rear]=p->lchild;
} if (p->rchild!=NULL) {
rear=(rear+1)%MaxSize;
qu[rear]=p->rchild;
}
}
} int main()
{
BTNode *b;
CreateBTNode(b,"A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))"); printf("2叉树b: ");
DispBTNode(b); printf("
"); printf("层次遍历序列:
");
LevelOrder(b);
DestroyBTNode(b); return 0;
}
注:在main函数中,创建的用于测试的2叉树以下――
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠