搜尋樹的建立,插入,刪除操作

2021-09-29 02:23:00 字數 2715 閱讀 8484

#include

using

namespace std;

typedef

class

trees

*btree,btree;

typedef

class

node

*qnode,qnode;

typedef

class

stack

//建立乙個鏈棧,用來遍歷

*linkstack,link;

void

push_stack

(linkstack &l,btree t)

;//進棧操作

void

init_stack

(linkstack &l)

;//初始化棧

btree pop_stack

(linkstack &l)

;//出棧操作

void

insert_tree

(qnode &l,

int e)

;//建立二叉搜尋樹 以及插入

bool

empty_stack

(linkstack l)

;//判斷棧是否為空

void

mid_printlist

(qnode l)

;//中序遍歷

inttree_height

(btree &l)

;//求樹的高度

intmax_tree

(btree l)

;//求樹的最大值

btree tree_right_min

(btree l)

;//得到右邊最小節點的指標

void

delete_tree

(btree &l,

int x)

;//刪除為x的節點

void

kh_printlist

(btree )

;int

main()

; qnode l=

new qnode;

l->node=

null

;for

(int i=

0;i<=

8;i++

)mid_printlist

(l);

/*int height=tree_height(l->node);

cout<<"這棵樹的高度是"cout<<"節點最大值是"cout<<

"你想刪除的節點的值是"

cin>>del;

delete_tree

(l->node,del)

;mid_printlist

(l);

return0;

}void

init_stack

(linkstack &l)

//初始化棧

void

push_stack

(linkstack &l,btree t)

//進棧操作

bool

empty_stack

(linkstack l)

//判斷棧是否為空

else

} btree pop_stack

(linkstack &l)

//出棧操作

else

}void

insert_tree

(qnode &l,

int e)

//建立二叉搜尋樹 以及插入

else

else

}else

else}}

}}void

mid_printlist

(qnode l)

//中序遍歷if(

!empty_stack

(stack))}

}int

tree_height

(btree &l)

else

else}}

intmax_tree

(btree l)

else

if(maxsreturn maxs;}}

void

kh_printlist

(btree tree)

//括號輸出二叉樹

else

cout<<

")";}}

} btree tree_right_min

(btree l)

//得到右邊最小節點的指標

else

if(l-

>right!=

null

)return p;}}

void

delete_tree

(btree &l,

int x)

//刪除為x的節點

else

if(x>data)

else

if(x>l-

>data)

else

if(l-

>left!=

null

&&l-

>right!=

null

)else

else

if(l-

>right==

null

)delete t;

}}

二叉搜尋樹的建立 查詢 插入 刪除

二叉查詢樹最常見的操作是查詢樹中的某個關鍵字,處了普通的search之外,其還能支援minimum maximun successor predecessor等查詢,對於高度為h的樹,它們都可以在o h 時間內完成。給定指向樹根的指標和關鍵字k,要在樹中查詢該關鍵字是否存在,如果存在,返回其指標,否...

B 樹的插入 刪除操作

include include define maxm 10 b 樹最大階數 typedef int keytype keytype是關鍵字型別 typedef struct node btnode typedef struct b 樹的查詢結果型別 result int m m階b 樹作為全域性變...

B樹插入刪除操作

b 樹定義 一種平衡的多路查詢樹。用於 索引組織檔案,減少訪問外存次數,節約搜尋時間。一棵m階b 樹或為空樹,或滿足下列特性 為盡量簡單,把考試不考的內容全部略去 1 樹中每個結點至多有m個分支,最少有 m 2 分支,取上整,除根結點外 2.關鍵字數大於等於m 2 1,小於等於m 1,2取上整 3 ...