根據先序遍歷的結果建立一棵樹
根據先序遍歷的結果還原一棵樹 則該樹是不確定的
例如 先序遍歷的結果abc 有兩種形式
如果要還原一棵樹,除了要知道先序遍歷的結果,還需要知道樹的位置。
如果用#表示空樹,
則左邊的二叉樹為 ab##c##
而右邊的二叉樹為 abc####
已只先序遍歷的結果,在建立樹時,先建立根節點
再遞迴建立左子樹,再遞迴建立右子樹。
//arr:儲存先序遍歷序列的字串
//size: 字串的長度
//index: 位置下標
//null_flag:為空樹的標誌
treenode* _createtree(treetype arr,size_t size, size_t* index, char null_flag)
60 66if(arr[*index]==null_flag)
67
71//建立根結點
72 treenode* root=createnode(arr[*index]);
73 (*index)++;
74//遞迴建立左子樹
75 root->lchild=_treecreate(arr,size, index,null_flag);
76 (*index)++
77//遞迴建立右子樹
78 root->rchild=_treecreate(arr,size,index,null_flag);
79return root;
80 }
8181
83 treenode* createtree(treetype arr,size_t size, char null_flag)
84
根據樹的先序和中序來建立一棵樹
只知道先序序列和後序序列是無法求出唯一的樹,所以不做討論。cpp view plain copy include include include using namespace std struct binarytreenode struct binarytreenode root1,root2 c...
tree建立一棵樹
pragma once include include include using namespace std 終止條件 define end value 1 todo method baseclassname fullname baseclassname qualifier 樹節點的屬性 stru...
如何根據層序序列和中序序列建立一棵樹
參考該部落格 最近複習了樹方面的資料結構知識,在做題的過程中,我發現都是給先序 或者後序 與中序讓求一棵樹,沒有碰到過給你層序和中序讓求樹的情況,故在此做乙個整理以便於今後回顧複習。附有注釋的 include using namespace std const int maxn 110 int le...