平时练习之简单链表.docx
- 文档编号:5012010
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:13
- 大小:82.18KB
平时练习之简单链表.docx
《平时练习之简单链表.docx》由会员分享,可在线阅读,更多相关《平时练习之简单链表.docx(13页珍藏版)》请在冰豆网上搜索。
平时练习之简单链表
#include
#include
#include
usingnamespacestd;
constintsize=10;
structProduct
{
charname[10];
intnumber;
doublevalue;
};
structLinearList
{
Product*element;
intlength;
intmaxsize;
};
Productp[size]=
{
{"卫生纸",1001,3.02},
{"牙膏",2003,5.00},
{"毛巾",8321,8.21},
{"书",5980,14.50},
{"化妆镜",4090,10.34},
{"小刀",2820,1.21},
{"枕套",3333,35.00},
{"钱包",6321,49.99},
{"玫瑰花束",5577,100.00},
{"钢笔",1100,29.73}
};
voidCreatLinearList(LinearList&L,intMaxListSize)
{
L.maxsize=MaxListSize;
L.element=newProduct[L.maxsize];
L.length=0;
}
voidprint(Productx)
{
cout< : fixed)< (2)< } voidOutputLinearList(LinearList&L) { inti; cout<<"*************************"< cout< for(i=0;i<10;i++) print(L.element[i]); cout<<"*************************"< } boolGetElemLinearList(LinearList&L,intk,Product&result) { if(k<1||k>L.length)returnfalse; result=L.element[k-1]; returntrue; } intSearchByNumber(LinearList&L,intnum)//通过编号找到元素位置 { inti; for(i=0;i { if(L.element[i].number==num) returni; } return-1; } intSearchByValue(LinearList&L,doubleval)//通过价格找到元素位置 { inti; for(i=0;i { if(L.element[i].value==val) returni; } return-1; } intSearchByName(LinearList&L,charna[])//通过名称找到元素位置 { inti; for(i=0;i { if(strcmp(L.element[i].name,na)==0) returni; } return-1; } intSearchLinearList(LinearList&L,Product&x) { for(inti=0;i if(strcmp(L.element[i].name,x.name)==0&&L.element[i].value==x.value&&L.element[i].number==x.number) returni; return-1; } boolInsertLinearList(LinearList&L,intk,Product&one) { if(k<0||k>L.length||L.length==L.maxsize) returnfalse; for(inti=L.length-1;i>=k;i--) L.element[i+1]=L.element[i]; strcpy(L.element[k].name,one.name); L.element[k].number=one.number; L.element[k].value=one.value; L.length++; returntrue; } boolDeleteLinearList(LinearList&L,intk) { if(k<1||k>L.length)returnfalse; { for(inti=k;i L.element[i-1]=L.element[i]; L.length--; returntrue; } } intmain() { intx;//选择操作数 LinearListL; intmax=20; CreatLinearList(L,max); for(inti=0;i<10;i++) InsertLinearList(L,i,p[i]); do { cout<<"请输入您想要进行的操作编号: "< cout<<"1.打印现有线性表"< cout<<"2.插入新的购物单元素"< cout<<"3.删除已有的购物单元素"< cout<<"4.查找购物单元素"< cout<<"5.退出"< cin>>x; switch(x) { case1: OutputLinearList(L);break; case2: cout<<"请输入您所要插入的商品信息及想要插入的位置编号"< Productx; intm; cout<<"名称: "; cin>>x.name; cout<<"编号: "; cin>>x.number; cout<<"价格: "; cin>>x.value; cout<<"位置: "; cin>>m; if(InsertLinearList(L,m,x)) { cout<<"插入成功,新的购物单如下: "< OutputLinearList(L); } elsecout<<"插入失败,请您重新选择! "< break; case3: chardeleteway; cout<<"请您选择删除方式: "< cout<<"A.输入商品名"< cout<<"B.输入商品编号"< cout<<"C.输入商品价格"< cout<<"D.输入购物单元素位置"< cin>>deleteway; intl; switch(deleteway) { case'A': charna[10]; cin>>na; if(l=SearchByName(L,na)+1) { if(DeleteLinearList(L,l)) { cout<<"删除成功,新的购物单如下"< OutputLinearList(L); } elsecout<<"删除失败! "< } else cout<<"原购物单没有此项商品,请重新输入! "< break; case'B': intnum; cin>>num; if(l=SearchByNumber(L,num)+1) { if(DeleteLinearList(L,l)) { cout<<"删除成功,新的购物单如下"< OutputLinearList(L);; } elsecout<<"删除失败! "< } else cout<<"原购物单没有此项商品,请重新输入! "< break; case'C': doubleval; cin>>val; if(l=SearchByValue(L,val)+1) { if(DeleteLinearList(L,l)) { cout<<"删除成功,新的购物单如下"< OutputLinearList(L);; } elsecout<<"删除失败! "< } else cout<<"原购物单没有此项商品,请重新输入! "< break; case'D': cin>>l; if(DeleteLinearList(L,l+1)) { cout<<"删除成功,新的购物单如下"< OutputLinearList(L);; } elsecout<<"删除失败! "< break; } case4: charsearchway; cout<<"请您选择查找方式: "< cout<<"A.输入商品名"< cout<<"B.输入商品编号"< cout<<"C.输入商品价格"< cout<<"D.输入购物单元素位置"< cin>>searchway; intk; Productres; switch(searchway) { case'A': charnam[10]; cin>>nam; if(k=SearchByName(L,nam)+1) { if(GetElemLinearList(L,k,res)) { cout<<"查找成功,这项商品信息为"< print(res); } elsecout<<"查找失败! "< } else cout<<"原购物单没有此项商品,请重新输入! "< break; case'B': intnumb; cin>>numb; if(k=SearchByNumber(L,numb)+1) { if(GetElemLinearList(L,k,res)) { cout<<"查找成功,这项商品信息为"< print(res); } elsecout<<"查找失败! "< } else cout<<"原购物单没有此项商品,请重新输入! "< break; case'C': doublevalu; cin>>valu; if(k=SearchByValue(L,valu)+1) { if(GetElemLinearList(L,k,res)) { cout<<"查找成功,这项商品信息为"< print(res); } elsecout<<"查找失败! "< } else cout<<"原购物单没有此项商品,请重新输入! "< break; case'D': cin>>k; if(k=SearchByValue(L,valu)+1) { if(GetElemLinearList(L,k,res)) { cout<<"查找成功,这项商品信息为"< print(res); } elsecout<<"查找失败! "< } elsecout<<"查找失败! "< break; } break; case5: break; default: cout<<"请输入正确编号! "< } //system("cls"); }while(x! =5); for(i=0;i DeleteLinearList(L,i); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 平时 练习 简单
![提示](https://static.bdocx.com/images/bang_tan.gif)