二叉樹前中後序演算法

2021-08-11 14:13:40 字數 976 閱讀 5716

#includetypedef struct nodebitnode,*bitree;

void createbitree(bitree *bitree)

}void preorder(bitree root)

}inorder(bitree root)

/*中序遍歷二叉樹, root為指向二叉樹(或某一子樹)根結點的指標*/

}void postorder(bitree root)

/* 後序遍歷二叉樹,root為指向二叉樹(或某一子樹)根結點的指標*/

} void preorder1(bitree root) /* 先序遍歷輸出二叉樹結點, root為指向二叉樹根結點的指標 */

}void preorder2(bitree root) /* 先序遍歷輸出二叉樹中的葉子結點 , root為指向二叉樹根結點的指標 (參考他人)*/

}/*採用遞迴演算法,如果是空樹,返回0;如果只有乙個結點,返回1;否則為左右子樹的葉子結點數之和。*/

int leaf(bitree root)

int posttreedepth(bitree bt) /* 後序遍歷求二叉樹bt高度的遞迴演算法(參考他人) */

else return(0); /* 如果是空樹,則返回0 */

}int hmax=0;

// 先序遍歷求二叉樹bt高度的遞迴演算法,h為bt指向結點所在層次,初值為1

//depth為當前求得的最大層次,為全域性變數,呼叫前初值為0

void pretreedepth(bitree bt, int h)

pretreedepth(bt->lchild, h+1); /* 遍歷左子樹 */

pretreedepth(bt->rchild, h+1); /* 遍歷右子樹 */

}int main()

/*abde..f...cgi...hj..k.l..*/

二叉樹前中後序整理

今天刷劍指offer,遇到一題關於二叉樹前中後序的,所以就想整理一下二叉樹前中後序的概念,內容是從別處複製的,不是原創,方便以後自己遺忘了複習用。那麼對上面這個樹進行前中後序遍歷,結果如下 前序遍歷 ab cde 中序遍歷 a b c d e 這裡符號有優先順序就在此處加上了括號 後序遍歷 ab c...

二叉樹前中後序遍歷

前序遍歷a b d f g h i e c 中序遍歷f d h g i b e a c 後序遍歷f h i g d e b c a 前序 根左右 中序 左根右 後序 左右根 已知某二叉樹的前序遍歷為a b d f g h i e c,中序遍歷為f d h g i b e a c,請還原這顆二叉樹。思...

二叉樹前中後序遍歷

二叉樹 6.先序遍歷 10分 請編寫遞迴函式,實現二叉樹的先序遍歷。函式原型 先序遍歷 void bintreepreorder const tnode root 說明 root為二叉樹或子樹的根指標。在標頭檔案 bintree.h 新增函式宣告。bintree.h 先序遍歷 void bintre...