- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
河北工业大学-数据结构实验报告-基于二叉排序树的商品信息查询算法的设计与实现
实验四:基于二叉排序树的商品信息查询算法的设计与实现
一、试验内容
查找是数据处理的重要操作。请设计并实现基于二叉排序树的商品信息查询算法。完成信息的查询、插入、删除、查询频度的统计等功能。
二、试验目的
熟练掌握顺序查找、折半查找及二叉排序树、平衡二叉树上的查找、插入和删除的方法。
三、流程图
四、源程序代码
#includeiostream
#includestdlib.h
#includefstream
#include string.h
using namespace std;
struct shangpin
{
int cishu,pingheng,jiage;
char mingcheng[40];
shangpin *l,*r,*p;
int shendu,quan;
};
int max(int a,int b)
{
if(ab)return(a);
else return(b);
};
shangpin *charu(shangpin *p)
{
shangpin *p1,*l,*r;
char a[40];
int b=0;
cout请输入商品名称:endl;
cina;
err:b=strcmp(a,p-mingcheng);
if(b==0){
cout此商品已有。endl;
return(NULL);
}
else if(b==-1){
if(p-l==NULL){
p-l=new shangpin;
p1=p-l;
strcpy(p1-mingcheng,a);
p1-cishu=0;
p1-l=NULL;
p1-r=NULL;
p1-p=p;
p1-pingheng=0;
cout请输入此商品的价格:endl;
cinp1-jiage;
return(p-l);
}
else {l=p-l;p=l;goto err;};
}
else {
if(p-r==NULL){
p-r=new shangpin;
p1=p-r;
strcpy(p1-mingcheng,a);
p1-cishu=0;
p1-r=NULL;
p1-l=NULL;
p1-p=p;
p1-pingheng=0;
cout请输入此商品的价格:endl;
cinp1-jiage;
return(p-r);
}
else {r=p-r;p=r;goto err;};
};
};
void chushi(shangpin *p)
{
cout建立初始节点:endl请输入商品名称:endl;
cinp-mingcheng;
cout请输入此商品价格:endl;
cinp-jiage;
cout请输入访问次数:endl;
cinp-cishu;
p-l=NULL;
p-r=NULL;
p-p=NULL;
p-pingheng=0;
};
int chaxun(shangpin *p,char a[])
{
int b;
err3:b=strcmp(a,p-mingcheng);
if(b==0){
cout查找成功,输出有关信息:endl;
p-cishu=p-cishu+1;
cout此商品价格为:p-jiageendl;
return(1);
}
else if(b==-1){
p=p-l;
if(p==NULL){
cout没有此商品,查找失败!!endl;
return(0);
}
else goto err3;
}
else {
p=p-r;
if(p==NULL){
cout没有此商品,查找失败!!endl;
return(0);
}
else goto err3;
}
};
int shanchu(shangpin *p)
{
shangpin *p1;
char a[40];
int b;
cout请输入要删除的商品的名称:endl;
cina;
err2: b=strcmp(a,p-mingcheng);
if(b==0){
p1=p-p;
if(p1-l==p){
if(p-l==NULLp-r==NULL){
p1-l=NULL;
}
else if(p-l==NULL){
p1-l=p-r;
}
else if(p-r==NULL){
p1-
文档评论(0)