關於書寫規範:
所有巨集定義
、列舉常數和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...