前中后序遍歷有技巧嗎 二叉樹的層次遍歷?
二叉樹的層次遍歷?設(shè)計一個遍歷二叉樹的算法(從左到右訪問同一層)。思路:用隊列保存當(dāng)前節(jié)點的左右子節(jié)點,實現(xiàn)序列遍歷。Void hierarchy BiTree(BiTree root){linkqu
二叉樹的層次遍歷?
設(shè)計一個遍歷二叉樹的算法(從左到右訪問同一層)。思路:用隊列保存當(dāng)前節(jié)點的左右子節(jié)點,實現(xiàn)序列遍歷。
Void hierarchy BiTree(BiTree root){
linkqueue*q//保存當(dāng)前節(jié)點左右子節(jié)點的隊列
initqueue(q)//初始化隊列
if(root==null)return//樹為空時返回
binode*P=root//將樹根臨時保存到指針P
visit(P->data)//訪問根節(jié)點
if(P->lchild)enqueue(Q,P->lchild)//如果有左子級,左子級進入隊列
if(P->rchild)enqueue(Q,P->rchild)//如果有右子級,右子級進入隊列
while(!Queueempty(q))//如果隊列不為空,則序列遍歷{dequeue(q,P)//出隊列
visit(P->data)//訪問當(dāng)前節(jié)點
if(P->lchild)enqueue(q,P->lchild)//如果有左子級,則左子級進入隊列
if(P->rchild)enqueue(q,P->rchild)//如果有左子級右子,右子進入隊列
}
destroy queue(q)//釋放隊列空間
return
這很詳細(xì)!你能理解的!加油!