王道提到了一點,要判斷兩個樹是否相同,需要遍歷包括中序在內的至少兩種方法,進行比較,如果都相同,才能確定兩樹相同。
題目描述:
判斷兩序列是否為同一二叉搜尋樹序列
輸入:開始乙個數n,(1<=n<=20) 表示有n個需要判斷,n= 0 的時候輸入結束。
接下去一行是乙個序列,序列長度小於10,包含(0~9)的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。
接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩個序列是否能組成同一顆二叉搜尋樹。
輸出:如果序列相同則輸出yes,否則輸出no
樣例輸入:
2567432
543267
576342
0
樣例輸出:
yesno
#include #include#include
using
namespace
std;
struct
node;
struct node tree[50
];int
loc;
node *create()
char *str0;//
當前正在儲存字串
int *size0;//
當前正在儲存字串中字元的個數
char str1[50],str2[50];//
儲存二叉排序樹結果,前序和中序的字串連線
int size1,size2;//
儲存在字元陣列中遍歷得到字元個數
void preorder(node *t)
void inorder(node *t)
node *insertnode(node *t,int x)
else
if(x < t->num)
t->lchild =insertnode(t->lchild,x);
else
if(x > t->num)
t->rchild = insertnode(t->rchild,x);
returnt;}
intmain()
return0;
}
王道 構建二叉搜尋樹(二叉排序樹)(C )
題意 輸入n,接下來輸入n個數字,由中n個數字構建二叉排序樹 二叉搜尋樹 並輸出其前中後序遍歷結果。樣例輸入輸出 輸入5 1 6 5 9 8 輸出16598 15689 65981 注意 輸入可能有重複元素,但是輸出的二叉遍歷序列中重複元素不用輸出 include include include i...
王道機試指南 二叉樹與二叉搜尋樹
二叉樹題目鏈結二叉樹 題意 在乙個完全二叉樹中給出乙個子樹的根和樹的最後乙個結點,求其子樹的結點個數。思路 分為三種情況 其中2 3情況均為乙個滿二叉樹,只需要知道其子樹的深度就可以直接算得,而對於第一種情況,需要先計算出其最後一層的結點樹,再加上以上的結點數。如下 include include ...
二叉搜尋樹 二叉搜尋樹
題目 二叉搜尋樹 time limit 2000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 6945 accepted submission s 3077 problem descripti...