資料結構課設 BST二叉排序樹

2021-10-12 03:19:14 字數 2466 閱讀 1330

程式設計實現二叉排序樹的建立、插入、刪除和查詢

對於給定的這組數在二叉排序樹上進行查詢,給出兩種情況下的查詢成功和不成功時的asl

//bst

#include

using

namespace std;

const

int maxn =

1e5;

typedef

struct node

bsnode,

*bstree;

intsearch_bst

(bstree t,

int key, bstree f, bstree *p)

else

if(key == t-

>data)

else

if(key < t-

>data)

else

}int

insert_bst

(bstree *t,

int key)

return

false;}

intdelete

(bstree *p)

elseif(

(*p)

->lchild ==

null

)else

(*p)

->data = s-

>data;

if(q !=

*p) q-

>rchild = s-

>lchild;

else

q->lchild = s-

>lchild;

free

(s);

}return

true;}

intdelete_bst

(bstree *t,

int key)

else

if(key <

(*t)

->data)

else}}

void

create_bst

(bstree *t,

int a,

int n)

void

output_bst

(bstree t)

output_bst

(t->lchild)

; cout << t-

>data <<

" ";

output_bst

(t->rchild);}

bool

bfs(bstree &t,

int key)

return0;

}int num=0;

intnumber

(bstree &t)

return num;

}double

asl(bstree &t,

int key)

if(p-

>rchild !=

null)}

return

(res*

1.0)

/(num*

1.0);}

else

//不能成功查詢

if(p-

>rchild !=

null)if

((p-

>lchild ==

null

&& p-

>rchild !=

null)||

(p->lchild !=

null

&& p-

>rchild ==

null))

if(p-

>lchild ==

null

&& p-

>rchild ==

null)}

return

(res*

1.0)

/(num*

1.0);}

}int

main()

//刪除 x=88

cout <<

"which number to delete: "

; cin >> x;

delete_bst

(&t, x)

; cout << endl;

//輸出

cout <<

"the output sequence is:"

<< endl;

output_bst

(t);

cout << endl;

//輸出查詢的asl

int key;

cout<<

"please enter a band to find the element : "

; cin>>key;

cout<<

asl(t,key)

("pause");

return0;

}

資料結構 二叉排序樹(BST)

基本介紹 示例 public class binarysorttreedemo int arr binarysorttree binarysorttree newbinarysorttree for int item arr binarysorttree.infixorder node node b...

資料結構 二叉排序樹BST初探

首先給出二叉排序樹 binary sort tree 的定義 一棵二叉排序樹或者是一棵空樹或者滿足以下條件 1 若它的左子樹不為空,則左子樹所有節點的值均小於根的值 2 若它的右子樹不為空,則右子樹所有節點的值均大於根的值 3 左右子樹本身又分別是二叉排序樹 如下圖就是乙個二叉排序樹 繪畫水平真的就...

資料結構與演算法 二叉排序樹 BST

二叉排序樹 bst binary sort search tree 對於二叉排序樹的任何乙個非葉子節點,要求左子節點的值比當前節點的值小,右子節點的值比當前節點的值大。特別說明 如果有相同的值,可以將該節點放在左子節點或右子節點。比如針對資料 7,3,10,12,5,1,9 對應的二叉排序樹為 二叉...