重建二義樹

2021-06-21 14:05:35 字數 996 閱讀 6834

關於書寫規範

所有巨集定義

、列舉常數和const變數,用大寫字母

命名函式名是複合詞的,第乙個詞採用全部小寫,隨後每個單詞採用第乙個字母大寫,其它字母小寫方式

用小寫字母

的字首表示變數的型別,字首的下乙個字母用大寫

類、型別定義和列舉型名的第乙個字母大寫

類的成員變數

應採用m_開頭

輸入前序遍歷和中序遍歷,重建二叉樹

binarytreenode* construct(int* preorder, int* inorder, int length)

binarytreenode* constructcore

(int* startpreorder, int* endpreorder,

int* startinorder, int* endinorder

)// 在中序遍歷中找到根結點的值

int* rootinorder = startinorder;

while(rootinorder <= endinorder && *rootinorder != rootvalue)                   //陣列不能用rootinorder==null

++ rootinorder;

if(rootinorder == endinorder && *rootinorder != rootvalue)

throw std::exception("invalid input.");

int leftlength = rootinorder - startinorder;

int* leftpreorderend = startpreorder + leftlength;

if(leftlength > 0)

if(leftlength < endpreorder - startpreorder)

return root;

}

樹 重建二叉樹

先處理傳入的陣列,如果陣列沒問題了,正式開始根據兩個陣列構建樹 bittree construct char preorder,char inorder,int len 傳入先序遍歷陣列的首尾指標和中序遍歷的首尾指標 bittree constructcore char preorderbegin,...

樹 重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。definition for binary tree public class treenode public class solu...

二叉樹重建

摘自劉汝佳的 演算法競賽入門經典 preorder t t 的根結點 preorder t 的左子樹 preorder t 的右子樹 inorder t inorder t 的左子樹 t 的根結點 inorder t 的右子樹 postorder t postorder t 的左子樹 postord...