輸入一系列整數,建立二叉排序數,並進行前序,中序,後序遍歷。
輸入第一行包括乙個整數n(1<=n<=100)。接下來的一行包括n個整數。
可能有多組測試資料,對於每組資料,將題目所給資料建立乙個二叉排序樹,並對二叉排序樹進行前序、中序和後序遍歷。每種遍歷結果輸出一行。每行最後乙個資料之後有乙個空格。
12 2
8 15
421 10 5 39
2
2 2
8 15
8 15
15 8
21 10 5 39
5 10 21 39
5 10 39 21
#includeusing namespace std;
const int maxn=101;
struct node;
int n,tree[maxn];
void insert(node* &root,int data)
if(data==root->data) return;
else if(datadata) insert (root->left,data);
else insert(root->right,data);
}node* create(int data,int n)
void inorder(node* root)
void postorder(node* root)
int main()
node* root=create(tree,n);
preorder(root);
cout
cout
cout<} return 0;
}
Codeup二叉查詢樹 二叉搜尋樹
判斷兩序列是否為同一二叉搜尋樹序列 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩個序列是否能組...
二叉排序樹 二叉搜尋樹 二叉查詢樹
特點 結構體定義struct node 建樹 建二叉排序樹 void create node root,int t else if t root data create root lc,t else create root rc,t 前序遍歷 層序 字典序 int flag int pre 1001...
二叉排序樹(二叉查詢樹 二叉搜尋樹)
include include typedef struct node node node createnode int value void addnode node root,int value else else void middleorder node node middleoder no...