題目描述
判斷兩序列是否為同一二叉搜尋樹序列
輸入開始乙個數n,(1<=n<=20) 表示有n個需要判斷,n= 0 的時候輸入結束。
接下去一行是乙個序列,序列長度小於10,包含(0~9)的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。
接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩個序列是否能組成同一顆二叉搜尋樹。
輸出如果序列相同則輸出yes,否則輸出no
樣例輸入 copy
6樣例輸出 copy45021
12045
54120
45021
45012
21054
50412
0
nonoyes
nono
no
#include using namespace std;
struct node;
/*插入*/
void insert(node* &root, int data)
if(data == root->data) return;/*關鍵!!這裡預設二叉排序樹不允許有重複鍵值*/
if(datadata) insert(root->lchild, data);
else insert(root->rchild, data);
}/*先序*/
void preorder(node* root, vector&vi)
int main()
preorder(newroot, pre);
if(pre == origin)
printf("yes\n");
else
printf("no\n");}}
return 0;
}
問題 B 二叉搜尋樹
題目描述 判斷兩序列是否為同一二叉搜尋樹序列 輸入開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩...
《演算法筆記》9 4小節 問題 B 二叉搜尋樹
這道題也當做二叉搜尋樹的建樹模板。這道題其實直接把這顆樹建出來後,比較前序序列和中序序列即可,這裡我用的陣列實現,更好寫和查錯qwq。code include using namespace std int n len string a b c char tree 400040 pd 400040 ...
二叉搜尋樹 平衡二叉樹 B樹 B 樹 B 樹
二叉查詢樹,由於不平衡,如果連續插入的資料是有順序的 會導致如下圖b的所示,此時搜尋會退化到o n 二叉查詢樹,也稱二叉搜尋樹,或二叉排序樹。其定義也比較簡單,要麼是一顆空樹,要麼就是具有如下性質的二叉樹 1 若任意節點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2 若任意節點的右子樹...