BST 二叉搜尋樹 (動態建樹與靜態建樹)

2021-07-31 04:41:23 字數 966 閱讀 3870

//判斷兩棵樹是否是同一棵樹:先序遍歷和中序遍歷對應相同或者中序遍歷和後序遍歷對應相同 

//**思路:兩個陣列分別存放建好的樹的先序遍歷以及正序遍歷結果,然後對比是否相等

//題目意思 這題是 hdu 3791

題目描述:

判斷兩序列是否為同一二叉搜尋樹序列

輸入:開始乙個數n,(1<=n<=20) 表示有n個需要判斷,n= 0 的時候輸入結束。

接下去一行是乙個序列,序列長度小於10,包含(0~9)的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。

接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩個序列是否能組成同一顆二叉搜尋樹。

輸出:如果序列相同則輸出yes,否則輸出no

樣例輸入:

2567432

543267

576342

0樣例輸出:

yesno

#include#include#include#includeusing namespace std;

typedef struct tinode

tinode,*bitree;

char prearr[15],prearr2[15];

char midarr[15],midarr2[15];

void buildtree(bitree &t,int x)//建樹

else if(xdata)

else if(x>t->data) }

void presearch(bitree t,int &index)//先序遍歷

void midsearch(bitree t, int &index)//中序遍歷

int main()

maketree(str2,node2);

compare();

} main();

return 0;

}

二叉搜尋樹BST

在二叉搜尋樹b中查詢x的過程為 1.若b是空樹,則搜尋失敗,否則 2.若x等於b的根結點的資料域之值,則查詢成功 否則 3.若x小於b的根結點的資料域之值,則搜尋左子樹 否則 4.查詢右子樹 指標parent指向proot的父節點,其初始呼叫值為null 若查詢成功,指標ptarget指向目標節點,...

二叉搜尋樹(BST)

二叉搜尋樹 bst bst 或者是一棵空樹,或者對於任何乙個結點,設其值為k,則該結點的左子樹的值小於k,右結點的值大於k。二叉搜尋樹按照中根遍歷將各個結點列印,將得到按照大到小的順序排列。bsg示意圖 二叉搜尋樹的效率在於檢索,將演算法複雜度從2 k減少到log n 檢索方式 從根結點開始,如果等...

BST二叉搜尋樹

深入學習理解bst include using namespace std typedef struct bitnodebitnode,bitree 二叉樹的插入操作 void insert bitnode root,int x 因為當對空樹插入時,相當於改變了樹的根節點的指向,因此需要用到指標或引...