根據先序遍歷的結果建立一棵樹 D S

2021-08-21 06:16:38 字數 1054 閱讀 4453

根據先序遍歷的結果建立一棵樹

根據先序遍歷的結果還原一棵樹 則該樹是不確定的

例如 先序遍歷的結果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...