二叉搜尋樹的建立和查詢

2021-08-21 15:56:27 字數 930 閱讀 1827

二叉排序樹,也稱為二叉查詢樹。可以是一顆空樹,也可以是一顆具有如下特性的非空二叉樹: 1. 若左子樹非空,則左子樹上所有節點關鍵字值均不大於根節點的關鍵字值; 2. 若右子樹非空,則右子樹上所有節點關鍵字值均不小於根節點的關鍵字值; 3. 左、右子樹本身也是一顆二叉排序樹。 現在給你n個關鍵字值各不相同的節點,要求你按順序插入乙個初始為空樹的二叉排序樹中,每次插入後成功後,求相應的父親節點的關鍵字值,如果沒有父親節點,則輸出-1。

輸入包含多組測試資料,每組測試資料兩行。

第一行,乙個數字n(n<=100),表示待插入的節點數。

第二行,n個互不相同的正整數,表示要順序插入節點的關鍵字值,這些值不超過10^8。

輸出共n行,每次插入節點後,該節點對應的父親節點的關鍵字值。
示例1

複製

5

2 5 1 3 4

複製

-122

53

二叉搜尋樹是機試資料結構裡經常考到的一種,主要涉及建立和搜尋,放在這裡經常看一下。

#include using namespace std;

int n;

int num[102];

struct node;

bool insert(int a,node * &p)

if(a>p->data)

else

}void search(node *p,int a)

else

} coutn;

for(int i=0;i>num[i];

} node *root=new node;

root->data=-1;

root->l=null;

root->r=null;

for(int i=0;ifor(int i=0;ireturn 0;

}

二叉搜尋樹的建立和遍歷

二叉搜尋樹的建立的遍歷 typedef struct bst tree pointer 定義資料型別 typedef struct bstbst tree pointer createbst tree pointer root,int data tree pointer insertbst tree...

二叉樹 二叉搜尋樹的建立和插入

二叉搜尋樹又名二叉排序樹。大概簡略的思維導圖如下,方便記憶特性 基本二叉搜尋樹建立過程如下 資料結構如下 typedef struct tree tree,treenode node 為二叉樹根節點,insert為插入的節點 void create tree treenode node,tree i...

二叉搜尋樹的建立

二叉搜尋樹 二叉查詢樹 binary search tree 又 二叉搜尋樹,二叉排序樹 它或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹。1.結...