#include
#include
#include
using namespace std;
typedef struct bstnode
bstnode,*
bstree
;void
charu
(bstree&t
,int e)
else
if(e<
t->data)
charu(t
->lchild,e)
;else
if(e>
t->data)
charu(t
->rchild,e);}
void
chuangjian
(bstree&t
)}void
zhongxvbianli
(bstreet)
}void
chazhao
(bstreet)
if(p->data>key) p=p->lchild;
else p=p->rchild;}if
(!p) cout<<
"該數不存在"
void
shanchu
(bstree&t
)if(!p)
return
; q=p;if(
(p->lchild)
&&(p->rchild)
) p->data=s->data;
if(q!=p) q->rchild=s->lchild;
else q->lchild=s->lchild;
delete s;
return;}
elseif(
!p->rchild)
elseif(
!p->lchild)if(
!f)t
=p;else
if(q==f->lchild) f->lchild=p;
else f->rchild=p;
delete q;
}int
asl(
bstreet)
,fu[10]
=,i=
1,flag=
1,r[10]
=;;if
(t==null)
return0;
a.push(t
);while
(!a.
empty()
)if(p->lchild!=null||p->rchild!=null)
//一層結束,父節點佇列出隊
//左節點不為空,右節點為空, 且p等於左節點if(
(parent.
front()
->lchild != null&&parent.
front()
->rchild == null)
&& p == parent.
front()
->lchild)
//右節點不為空,左節點為空, 且p等於右節點
elseif(
(parent.
front()
->rchild != null&& parent.
front()
->lchild == null)
&& p == parent.
front()
->rchild)
//右節點不為空,左節點為空, 且p等於右節點
else
if(p == parent.
front()
->rchild)
}int s=
0,z=
0,t=0;
for(
int j=
0;j<=i;j++
)printf
("查詢成功時的平均檢索長度(asl)=");
cout<'/'
("查詢失敗時的平均檢索長度(asl)=");
cout<'/'<}int
main()
if(p==2)
return0;
}}if(e==2)
if(p==2)
return0;
}}if(e==3)
if(p==2)
return0;
}}if(e==4)
if(p==2)
return0;
}}if(e==5)
return0;
}}
二叉排序樹的操作
二叉排序樹的建立,中序遍歷,前序遍歷,後序遍歷,計算總結點數,計算樹的深度 二叉排序樹的建立 void creattree tree t,int m if melement creattree t lchild,m else creattree t rchild,m 前序遍歷 void preord...
二叉排序樹基本操作
1.儲存結構 二叉鍊錶 include include typedef struct bitnode bitnode,bitree 2.二叉排序樹查詢演算法 遞迴查詢二叉排序樹t中是否存在key status search bitree t,int key,bitree f,bitree p p指向...
二叉排序樹各項操作
二叉排序樹的各項操作 include include define max20 typedef int datatype typedef struct bi search tree bst tree 插入操作,value是待插入的值 bst tree bst insert bst tree root...