程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c語言-求助關於二叉樹層次遍歷

c語言-求助關於二叉樹層次遍歷

編輯:編程解疑
求助關於二叉樹層次遍歷

向各位前輩求助。。。。。 小弟研究二叉樹層次遍歷三天了,始終不能結合隊列寫出可執行的代碼。。。。真心求教。。。。萬分感謝。。。。。!!!!

void Printbylevel(BTree T)
{
BNode *tmp = T;
CircleQueue *q = malloc(sizeof(CircleQueue));
Init(q);
if(T == NULL)
{
return ;//根節點為空,返回-1
}
else
{
InQueue(q, tmp);//根節點入隊
}
while(q->num)//隊列不為空
{
OutQueue(q, tmp); //出隊,把出隊元素保存在tmp上
printf("%d", tmp->data); //輸出出隊元素
if(tmp->lchild) //左子樹不為空
{
InQueue(q, tmp->lchild);//左子樹入隊
}
if(tmp->rchild) //右子樹不為空
{
InQueue(q, tmp->rchild);//右子樹入隊
}
}
return 0;
}


這個是我寫的關於層次遍歷的函數,一結合和隊列就出問題了
請問應該怎樣設計隊列結構,。。。。。。。。。。。。

如果方便的話希望能否貼出源碼參考學習

最佳回答:


我這個程序比較簡陋,隊列用數組模擬,沒有考慮下溢的問題,不過不影響你理解大概思路,和在我之上的完善。

caozhy
caozhy
p15989156422
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved