題目1009 二叉搜尋樹

2021-07-29 05:36:12 字數 1090 閱讀 6155

輸入乙個整數n,再給你乙個序列s讓你生成乙個二叉排序樹,接下來輸入n個序列,判斷這n個序列生成的二叉排序樹是否和序列s生成的二叉排序樹相同。

這道題的思路是這樣,我們首先應該根據給定序列建乙個二叉排序樹,判斷兩顆樹相同的條件是它們的前序序列和中序序列/後序序列和中序序列相等。

下面是此題的**:

#include #include using namespace std;

struct node

;string store_pre[21]; //設著全域性變數來儲存前序和中序遍歷的結果

string store_in[21];

void preorder(node *t,int i) //前序遍歷

if (t -> rchild != null)

}void inorder(node *t,int i) //中序遍歷

store_in[i] += t->c;

if (t -> rchild != null)

}node tree[200]; //結構體陣列,用來存放結點

int local; //全域性變數,用來記錄當前已申請的結點數

node* creat() //用來申請結點空間

node* insert(node *t,char x) //將輸入的數字插入二叉排序樹

else if (x < t->c)

else if (x > t->c)

return t;

}int main()

for (int i = 0;i <=n;i++) //輸入

for (int i = 0;i <= n;i++) //對每個輸入字串建樹後,進行前序和中序遍歷

preorder(t,i);

inorder(t,i);

}store_pre[0] += store_in[0];

for (int i = 1;i <=n;i++) //遍歷結果與給定的字串的遍歷結果進行比較

else}}

return 0;

}

題目1009 二叉搜尋樹

題目1009 二叉搜尋樹 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 7634 解決 3374 題目描述 判斷兩序列是否為同一二叉搜尋樹序列 輸入 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒...

36 題目1009 二叉搜尋樹

題目描述 判斷兩序列是否為同一二叉搜尋樹序列 輸入 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這...

九度OJ 題目1009 二叉搜尋樹

題目描述 判斷兩序列是否為同一二叉搜尋樹序列 輸入 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這...