搜尋二叉樹建立

2021-08-16 01:51:31 字數 1057 閱讀 9503

time limit: 1000 ms

memory limit: 65536 kib

problem description

在樹結構中,有一種特殊的二叉樹叫做排序二叉樹,直觀的理解就是——(1).每個節點中包含有乙個關鍵值 (2).任意乙個節點的左子樹(如果存在的話)的關鍵值小於該節點的關鍵值 (3).任意乙個節點的右子樹(如果存在的話)的關鍵值大於該節點的關鍵值。現給定一組資料,請你對這組資料按給定順序建立一棵排序二叉樹,並輸出其中序遍歷的結果。

input

輸入包含多組資料,每組資料格式如下。

第一行包含乙個整數n,為關鍵值的個數,關鍵值用整數表示。(n<=1000)

第二行包含n個整數,保證每個整數在int範圍之內。

output

為給定的資料建立排序二叉樹,並輸出其中序遍歷結果,每個輸出佔一行。

sample input

122

1 20

sample output

2

1 20

#include #include #include struct node

;struct node *insert(struct node *root, int x)

else

return root;

}///中序遍歷

void mid(struct node *root)

}int main()

mid(root);

printf("\n");

}return 0;

}

搜尋二叉樹的建立

二叉搜尋樹的性質 1 若它的左子樹不為空,則左子樹上所有節點都小於根節點的值。2 若它的右子樹不為空,則右子樹上所有節點都大於根節點的值。3 它的左右子樹也分別為二叉搜尋樹。二叉搜尋樹如下圖 二叉搜尋樹的建立過程 先找到需要插入值得父節點,比較父節點與插入值得大小,確定插入的位置。找父節點,需要通過...

二叉樹 還原二叉樹 二叉搜尋樹

先序遍歷的特點 先遍歷根結點,再遍歷左子樹,最後再遍歷右子樹 中序遍歷的特點 先遍歷左子樹,再遍歷根結點,最後再遍歷右子樹 後序遍歷的特點 先遍歷左子樹,再遍歷右子樹,最後再遍歷根結點 舉例 先序遍歷 a b d f g h i e c 中序遍歷 f d h g i b e a c 如上,根據先序遍...

建立二叉樹 後序建立二叉樹

由後序遍歷可知,輸入順序是左結點 右結點 子樹根結點 比如輸入如下樹 ab cde 輸入序列為 e d b c a 思路 使用棧,對左結點和右結點進行壓棧 1.當輸入遇到非 且棧中元素大於等於2,則可以確定乙個小三角樹形,並將這個樹根作為下乙個小三角樹形的乙個子節點 2.當輸入遇到非 但棧中元素小於...