內容 :
二元搜尋樹(Binary Search Tree),也稱二叉搜索樹、有序二元樹(ordered binary tree),排序二元樹(sorted binary tree),是指一棵空樹或者具有下列性質的二元樹:
若任意節點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值;
任意節點的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值;
任意節點的左、右子樹也分別為二元搜尋樹。
沒有鍵值相等的節點(no duplicate nodes)。- void insert(Node*& root, int data) {
- if (!root) root = new Node(data);
- else if (data < root->data)
- insert(root->left, data);
- else if (data > root->data)
- insert(root->right, data);
- }
複製代碼 通常一開始學到二元搜尋樹,會先教插入算法,現在的這個問題很簡單,只是稍微要求效率。
輸入說明 :
輸入有多組測資,
每一組,第一行有一個數字 N (0 < N < 131072)
接下來會建入 N 個數字 M (signed 32-bit) ,沒有數字會重複。
輸出說明 :
對於每一組測資,輸出一行的前序走訪。
範例輸入 : help
5
0 1 2 4 3
5
0 2 4 1 3
5
3 1 4 2 0
5
1 4 2 0 3
5
0 4 3 2 1
範例輸出 :
0 1 2 4 3
0 2 1 4 3
3 1 0 2 4
1 0 4 2 3
0 4 3 2 1
提示 :
出處 :
妮可
(管理:morris1028) |