数据结构实验二叉排序树Word文档格式.docx

上传人:b****5 文档编号:21159059 上传时间:2023-01-28 格式:DOCX 页数:23 大小:111.20KB
下载 相关 举报
数据结构实验二叉排序树Word文档格式.docx_第1页
第1页 / 共23页
数据结构实验二叉排序树Word文档格式.docx_第2页
第2页 / 共23页
数据结构实验二叉排序树Word文档格式.docx_第3页
第3页 / 共23页
数据结构实验二叉排序树Word文档格式.docx_第4页
第4页 / 共23页
数据结构实验二叉排序树Word文档格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数据结构实验二叉排序树Word文档格式.docx

《数据结构实验二叉排序树Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构实验二叉排序树Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。

数据结构实验二叉排序树Word文档格式.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1