進擊的二叉查詢樹 BST

2021-08-16 18:58:49 字數 967 閱讀 7187

題意: 給定1~n的兩個排列,使用這兩個排列分別構建兩棵二叉查詢樹(也就是通過往一棵空樹中依次插入序列元素的構建方式)。如果這兩棵二叉查詢樹完全相同,那麼輸出yes;否則輸出no。之後,輸出第乙個排列對應的二叉查詢樹的後序序列、層序序列。題目鏈結~

分析:這就涉及bst的重建了,簡單的模板題。

**:

#includeusing namespace std;

const int maxn = 50;

int layer[50], in[50], pre[50];

int n,idx=0;

struct node;

void preorder(node *root)

void inorder(node *root)

void postorder(node *root)

node *root1,*root2 ;

bool flag = true;

void cmp(node *r1, node *r2)

cmp(r1->lchild, r2->lchild);

cmp(r1->rchild, r2->rchild);

}//插入構建二叉查詢樹

void insert(node* &node, int x)

else

else insert(node->rchild, x); }}

//二叉查詢樹的層序遍歷

void bfs(node* node)

}int main()

for(int i = 0; icmp(root1, root2);

if(flag) printf("yes\n");

else printf("no\n");

postorder(root1);

printf("\n");

bfs(root1);

return 0;

}

二叉查詢樹 BST

當所有的靜態查詢結構新增和刪除乙個資料的時候,整個結構都需要重建。這對於常常需要在查詢過程中動態改變資料而言,是災難性的。因此人們就必須去尋找高效的動態查詢結構,我們在這討論乙個非常常用的動態查詢樹 二叉查詢樹。二叉查詢樹的特點 下面的圖就是兩棵二叉查詢樹,我們可以總結一下他的特點 1 若它的左子樹...

二叉查詢樹(BST)

二叉查詢樹,也稱為二叉排序樹,二叉搜尋樹。二叉查詢樹結合了鍊錶插入的靈活性和有序陣列查詢 二分查詢 的高效性。用二叉查詢樹實現有序符號表的api。public class bst,value 有序符號表的相關方法 public intsize private intsize node x publi...

二叉查詢樹BST

樹由node物件組成,每個物件有一對鍵值 兩條鏈結和乙個節點計數器n。每個node物件都是一棵含有n個節點的子樹的根節點,它的左鏈結指向一棵由小於該節點的所有鍵組成的二叉查詢樹,右鏈結指向一棵由大於該節點的所有鍵組成的二叉查詢樹。在bst類中,還應定義乙個node物件root,指向當前二叉樹的根節點...