二叉排序樹的建立

2021-08-07 08:15:52 字數 903 閱讀 6767

首先二叉樹排序樹(binary sort tree) 簡稱bst,又叫二叉查詢樹。具有以下性質:

若它的左子樹不為空,則左子樹上的所有結點的值均小於它的根結構的值

若它的右子樹不為空,則右子樹上的所有結點的值均大於它的根結構的值

它的左,右子樹也分別為二叉排序樹。

簡單的概括起來就是:左《中《右

由此可知,二叉排序樹的中序遍歷一定是嚴格遞增的。

**:

#includeusing namespace std;

typedef struct nodenode;

//向bst中插入新節點

bool insert(node * &p,int n)

//bst中不能有相同的值

if(n==p->data)

//遞迴

if(ndata)

return insert(p->lc,n);

else

return insert(p->rc,n);

}//建立bst

void buildbst(node * &p,int n,int a)

}/*中序遍歷*/

void preorder(node *t)

}int main();

int n = sizeof(a)/sizeof(a[0]);

node *t;

buildbst(t,n,a);

inorder(t);

cout《可知二叉樹有,前,中,後和層次遍歷。當我們知道,中序遍歷,和其他三種中的一種時,就可以構造出原先的二叉樹。之後的文章中會給出相應的**

建立二叉排序樹

建立二叉排序樹 1 建立二叉排序樹,二叉樹排序樹有個特點,如果結點值大於根,則在右子樹去查詢插入位置,如果小於樹根,在左子樹去查詢樹根,如果相等,不作任何操作 2 根據上面的特性,需要兩個結點,分別是當前結點和父節點 3 先遍歷二叉樹節點,找到要插入的位置,根據父節點的指向要插入的位置 實現過程如下...

二叉排序樹的建立

首先二叉排序樹的查詢,這裡father用於記錄訪問點的前序,如果找到關鍵字,也就是程式中的e,則p指向這個結點,而father則指向p的父結點,如果沒有找到關鍵字,則father指向查詢路徑上的最後乙個結點,也可以理解為要插入的結點 關鍵插入father的左子樹或者右子樹 typedef struc...

二叉排序樹的建立

二叉排序樹,又稱為二叉查詢樹。它或者是一棵空樹,或者是具有以下性質的二叉樹。1 若它的左子樹不為空,則左子樹上的所有節點的值均小於他的根的值 2 若他的右子樹不為空,則右子樹的所有節點的值均大於它的根的值 3 它的左右子樹也分別為二叉排序樹 二叉樹的結構 二叉樹的二叉鍊錶節點結構定義 typedef...