数据结构实验二叉排序树Word文档格式.docx
- 文档编号:21159059
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:23
- 大小:111.20KB
数据结构实验二叉排序树Word文档格式.docx
《数据结构实验二叉排序树Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构实验二叉排序树Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
chara[40];
intb=0;
cout<
<
"
请输入商品名称:
endl;
cin>
>
a;
err:
b=strcmp(a,p->
mingcheng);
if(b==0){
cout<
此商品已有。
return(NULL);
}
elseif(b==-1){
if(p->
l==NULL){
p->
l=newshangpin;
p1=p->
l;
strcpy(p1->
mingcheng,a);
p1->
cishu=0;
l=NULL;
r=NULL;
p=p;
pingheng=0;
cout<
请输入此商品的价格:
cin>
p1->
jiage;
return(p->
l);
}
else{l=p->
p=l;
gotoerr;
else{
r==NULL){
r=newshangpin;
r;
r);
}
else{r=p->
p=r;
};
voidchushi(shangpin*p)
建立初始节点:
endl<
p->
mingcheng;
请输入此商品价格:
请输入访问次数:
cishu;
p->
p=NULL;
intchaxun(shangpin*p,chara[])
intb;
err3:
查找成功,输出有关信息:
p->
cishu=p->
cishu+1;
此商品价格为:
jiage<
return
(1);
p=p->
if(p==NULL){
cout<
没有此商品,查找失败!
!
return(0);
elsegotoerr3;
intshanchu(shangpin*p)
shangpin*p1;
请输入要删除的商品的名称:
err2:
b=strcmp(a,p->
p1=p->
p;
if(p1->
l==p){
if(p->
l==NULL&
&
elseif(p->
l=p->
else{
while(p1->
r!
=NULL){
p1=p1->
};
r=p->
};
else{
};
删除成功。
没有此商品,删除失败!
elsegotoerr2;
intbianlishendu(shangpin*p3)
inta=0;
shangpin*p1,*l,*r,*p;
p=p3;
if(p->
只有一头节点!
return(0);
err7:
if(a==0){
l==NULL){a=1;
}
else{p1=p;
p=p->
a=0;
gotoerr7;
if(a==1){
r==NULL){a=2;
if(a==2){
p1=p;
l==p1)a=1;
r==p1)a=2;
r==NULL){p1->
shendu=0;
elseif(p1->
l==NULL){r=p1->
shendu=r->
shendu+1;
r==NULL){l=p1->
shendu=l->
else{r=p1->
l=p1->
shendu=max(l->
shendu,r->
shendu)+1;
if(p3->
r==p1&
a==2){
l=p3->
r=p3->
if(l!
=NULL)p3->
elsep3->
elseif(p3->
r==NULL&
p3->
l==p1){
if(p3==p){p3->
shendu=p1->
elsegotoerr7;
elsegotoerr7;
return(0);
shangpin*pinghenghua(shangpin*p0)
shangpin*p2,*p3,*p4,*p5,*p6,*p7,*p8;
inti,j,a,yong;
a=0;
shangpin*pq[40],*p1,*l,*r,*p;
err10:
p=p0;
这里只有一个节点!
return(p0);
for(i=0;
i<
40;
i++){
pq[i]=NULL;
yong=bianlishendu(p0);
for(j=0;
j<
i;
j++){
if(pq[j]==p)break;
if(j==i){pq[i]=p;
elsei=i-1;
if(a==0){
else{p1=p;
continue;
if(a==1){
if(a==2){
p1=p;
p=p1->
l==p1){a=1;
r==p1){a=2;
if(p1->
quan=0;
elseif(p1->
quan=-r->
shendu-1;
quan=l->
else{r=p1->
shendu-r->
shendu;
if(p0->
l=p0->
r=p0->
if(l!
=NULL)p0->
elsep0->
gotoerr8;
elseif(p0->
l==p1&
p0->
if(p0==p){p0->
quan=p1->
gotoerr8;
else{;
else{;
err8:
a=i;
=a;
if(pq[i]->
quan==2){
p2=pq[i]->
if(p2->
quan==1){
if(p2!
=NULL){p3=p2->
p4=p2->
p5=pq[i]->
p6=pq[i]->
if(p6==NULL){p2->
elseif(p6->
l==pq[i]){p6->
l=p2;
p2->
p=p6;
else{p6->
r=p2;
pq[i]->
l=p4;
if(p4!
=NULL)p4->
p=pq[i];
r=p5;
if(p5!
=NULL)p5->
p=p2;
if(p2!
=NULL)p2->
r=pq[i];
l=p3;
if(p3!
=NULL)p3->
shendu=pq[i]->
shendu-2;
p=p0;
while(p->
p!
p=p->
yong=bianlishendu(p);
break;
quan==-1){
=NULL)p3=p2->
p4=pq[i]->
=NULL)p5=p2->
if(p3!
=NULL)p6=p3->
=NULL)p7=p3->
p8=pq[i]->
if(p4==NULL){p3->
elseif(p4->
l==pq[i]){p4->
p=p4;
else{p4->
r=p3;
pq[i]->
r=p6;
if(p6!
=NULL)p6->
l=p7;
if(p7!
=NULL)p7->
r=p8;
if(p8!
=NULL)p8->
quan=-1;
if(p8!
=NULL)pq[i]->
shendu=p8->
shendu=p2->
=NULL&
p3!
quan==-2){
if(p4!
l=p5;
l=pq[i];
p5=p2->
=NULL){p6=p3->
p7=p3->
l=p6;
l=p8;
r=p7;
p2!
quan>
=-1&
quan<
=1)continue;
elsebreak;
if(i==a+1);
else{gotoerr10;
return(p);
voidnull(shangpin*p1)
shangpin*p;
p=p1;
voidmain()
chara,b,mingcheng[40],*p1;
intc,d=0,i,yong;
shangpinhead,meiyou[40];
shangpin*p,*t;
p=&
head;
p1=&
mingcheng[0];
初始化输入A,插入输入B,查询输入C,删除输入D,了解客户需要的新商品输入E,结束输入F."
#######################################"
if(a=='
A'
){
进入初始化程序:
*************************"
chushi(p);
已生成一个头节点,是否继续插入节点Y/N"
cin>
b;
if(b=='
Y'
err6:
t=charu(p);
cin>
t->
p=pinghenghua(p);
是否继续Y/N"
gotoerr6;
初始化结束。
C'
进入查询程序:
请输入要查询的商品的名称:
c=chaxun(p,a);
if(c==0){
for(i=0;
d;
yong=strcmp(meiyou[i].mingcheng,a);
if(yong==0){
meiyou[i].cishu=meiyou[i].cishu+1;
break;
if(i==d){
strcpy(meiyou[i].mingcheng,a);
meiyou[i].cishu=1;
d=d+1;
D'
进入删除程序:
c=shanchu(p);
E'
for(i=0;
商品名称为:
meiyou[i].mingcheng<
的商品,被查找过"
meiyou[i].cishu<
次"
B'
进入插入程序:
t=charu(p);
F'
){;
五、调试过程
应该划分模块,对不同的操作应用不同的函数来完成。
在调试过程中,关于平衡二叉树的那部分比较难,没能实现文件的储存和读取功能。
六、结果分析
初始化输入A,插入输入B,查询输入C,删除输入D,了解客户需要的新商品输入E,结束输
入F.
#######################################
A
*************************
a
1
已生成一个头节点,是否继续插入节点Y/N
Y
b
2
是否继续Y/N
c
3
是否继续Y
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 二叉排序树