河北工业大学-数据结构实验报告-基于二叉排序树的商品信息查询算法的设计与实现
更新时间:2023-11-12 06:22:01 阅读量: 教育文库 文档下载
实验四:基于二叉排序树的商品信息查询算法的设计与实现
一、试验内容
查找是数据处理的重要操作。请设计并实现基于二叉排序树的商品信息查询算法。完成信息的查询、插入、删除、查询频度的统计等功能。
二、试验目的
熟练掌握顺序查找、折半查找及二叉排序树、平衡二叉树上的查找、插入和删除的方法。
三、流程图
开始输入a a==’A’Y建立头结点平衡化C==’Y’YNN调用插入函数,插入一个节点 a==’B’NY插入函数输入名称找到位置,插入平衡化 a==’C’Y进入查询函数输入名称查找商品查到输出信息没查到N储存相关信息到数组c查到查找商品删除节点没查到N删除失败 a==’D’Y进入删除函数输入名称平衡化 a==’E’NY输出数组c a==’F’Y结束N
四、源程序代码
#include
int cishu,pingheng,jiage; char mingcheng[40]; shangpin *l,*r,*p; int shendu,quan; };
int max(int a,int b) {
if(a>b)return(a); else return(b); };
shangpin *charu(shangpin *p) {
shangpin *p1,*l,*r; char a[40]; int b=0;
cout<<\请输入商品名称:\ cin>>a;
err:b=strcmp(a,p->mingcheng); if(b==0){
cout<<\此商品已有。\ 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<<\请输入此商品的价格:\ cin>>p1->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<<\请输入此商品的价格:\ cin>>p1->jiage; return(p->r); }
else {r=p->r;p=r;goto err;}; }; };
void chushi(shangpin *p) {
cout<<\建立初始节点:\请输入商品名称:\ cin>>p->mingcheng;
cout<<\请输入此商品价格:\ cin>>p->jiage;
cout<<\请输入访问次数:\ cin>>p->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<<\查找成功,输出有关信息:\ p->cishu=p->cishu+1;
cout<<\此商品价格为:\ return(1); }
else if(b==-1){ p=p->l;
if(p==NULL){
cout<<\没有此商品,查找失败!!\ return(0); }
else goto err3; }
else {
p=p->r;
if(p==NULL){
cout<<\没有此商品,查找失败!!\ return(0); }
else goto err3; } };
int shanchu(shangpin *p) {
shangpin *p1; char a[40]; int b;
cout<<\请输入要删除的商品的名称:\ cin>>a;
err2: b=strcmp(a,p->mingcheng); if(b==0){ p1=p->p;
if(p1->l==p){
if(p->l==NULL&&p->r==NULL){ p1->l=NULL; }
else if(p->l==NULL){ p1->l=p->r; }
else if(p->r==NULL){ p1->l=p->l; }
else {
p1->l=p->l; p1=p->r;
while(p1->r!=NULL){ p1=p1->r; };
p1->r=p->r; }; }
else {
if(p->l==NULL&&p->r==NULL){ p1->r=NULL; }
else if(p->l==NULL){ p1->r=p->r; }
else {
p1->r=p->l; p1=p->r;
while(p1->r!=NULL){ p1=p1->r; };
p1->r=p->r; }; };
cout<<\删除成功。\ return(1); }
else if(b==-1){ p=p->l;
if(p==NULL){
cout<<\没有此商品,删除失败!!\ return(0); }
else goto err2; }
else {
p=p->r;
if(p==NULL){
cout<<\没有此商品,删除失败!!\ return(0); }
else goto err2; }; };
int bianlishendu(shangpin *p3) {
int a=0;
shangpin *p1,*l,*r,*p;p=p3; if(p->l==NULL&&p->r==NULL){ cout<<\只有一头节点!!!\ return(0); };
正在阅读:
河北工业大学-数据结构实验报告-基于二叉排序树的商品信息查询算法的设计与实现11-12
“清除小广告”综合实践活动方案08-31
一- 安徽省庐江中学04-21
兰大急救护理二02-02
打靶归来串词02-06
2016年高考成语复习分类特殊用法类谦辞敬辞类(精校WORD06-19
(新课标)高中语文二轮复习 文言翻译学案(教师专用)06-11
我的天使作文500字07-09
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 数据结构
- 河北
- 工业大学
- 算法
- 排序
- 基于
- 实验
- 实现
- 报告
- 商品
- 设计
- 查询
- 信息
- 小学一年级如何指导学生做好语文课的课前预习
- 共建大学生社会实践基地签约仪式主持词
- 计算机应用基础·2017年秋华南理工大学网络教育随堂作业答案 docx
- 七嘴八舌话环保口语交际教学设计
- 中共昆明市委、昆明市人民政府关于加快中小企业发展的实施意见
- 物理化学练习题2
- 网球双打的站位和战术技巧解析
- 机修车间职工思想分析
- 抽样调查习题及答案
- 速效救心丸联合曲美他嗪治疗冠心病心绞痛的临床研究
- 1.静女默写(自己的)
- 免费在线作业答案奥鹏东师管理会计15秋在线作业1满分答案(1)
- 有机化学补充习题(上册)(09化本)(DOC)
- 局域网组网技术实训报告
- 《马克思主义经典著作选读》课程教学大纲
- 《三亚市人民政府关于进一步加强规划管理节约集约利用土地促进城乡统筹科学发展的意见》2015.01
- 医学统计学练习题及答案
- 植物学复习题2
- 四年级等差数列练习题1
- 金融企业会计习题集答案