平时练习之简单链表.docx

上传人:b****4 文档编号:5012010 上传时间:2022-12-12 格式:DOCX 页数:13 大小:82.18KB
下载 相关 举报
平时练习之简单链表.docx_第1页
第1页 / 共13页
平时练习之简单链表.docx_第2页
第2页 / 共13页
平时练习之简单链表.docx_第3页
第3页 / 共13页
平时练习之简单链表.docx_第4页
第4页 / 共13页
平时练习之简单链表.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

平时练习之简单链表.docx

《平时练习之简单链表.docx》由会员分享,可在线阅读,更多相关《平时练习之简单链表.docx(13页珍藏版)》请在冰豆网上搜索。

平时练习之简单链表.docx

平时练习之简单链表

#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;

}

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

当前位置:首页 > 职业教育 > 职业技术培训

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

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