數據結構例程――二叉樹的層次遍歷算法
來源:程序員人生 發布時間:2016-03-28 17:34:14 閱讀次數:3428次
本文是數據結構基礎系列(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叉樹以下――
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈