版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实训题一线性表的插入和删除运算一、实验目的:1、掌握线性表顺序存储结构2、能熟练地利用顺序存储结构实现线性表的基本操作3、能熟练地掌握顺序存储结构中算法的实现二、实验内容:1、建立含有若干个元素的顺序表,并将结果在屏幕上输出2、对建立的顺序表实现插入和删除,并将结果在屏幕上输出3、对建立的链式线性表实现插入和删除,并将结果在屏幕上输出三、算法程序:1、顺序存储1)插入运算#include<iostream.h>#defineelemtypeintconstintmaxsize=1000;classsequenlist{protected:elemtypea[maxsize];intlen;public:voidinput(intn){for(inti=1;i<=len;i++)cin>>a[i];len=n;cout<<endl;}voidinsert(elemtypex,inti){intj;if(len>=maxsize-1)cout<<"overflow"<<endl;elseif((ivl)ll(i>len+l))coutvv"positionisnotcorrect!"vvendl;else{for(j=len;j>=i;j--)a[j+1]=a[j];a[i]=x;len++;}}voidprint(){for(inti=1;i<=len;i++)coutvva[i]vv"\n";coutvvendl;}};voidmain(){sequenlistL;elemtypex;inti,j,n;coutvv"请输入表中的元素个数:";cin>>n;coutvv"请输入"vvnvv"个元素,建立顺序表"vvendl;L.input(n);coutvv"请输入要插入的元素及位置:";cin>>x>>j;L.insert(x,j);L.print();}2)删除运算#include<iostream.h>#defineelemtypeintconstintmaxsize=1000;classsequenlist{protected:elemtypea[maxsize];intlen;public:voidinput(intn){for(inti=1;i<=n;i++)cin>>a[i];len=n;cout<<endl;}voiddel(inti){intj;if((i<1)||(i>len))cout<<"positionisnotcorrect!"<<endl;else{for(j=i+1;j<=len;j++)a[j-1]=a[j];len--;}}voidprint(){for(inti=1;i<=len;i++)cout<<a[i]<<"\n";cout<<endl;}};voidmain(){sequenlistL;elemtypex,n;inti,j;coutvv"请输入表中的元素个数:";cin>>n;coutvv"请输入"vvnvv"个元素,建立顺序表"vvendl;L.input(n);coutvv"请输入要删除的元素位置:";cin>>j;L.del(j);L.print();}运行结果:运行结果:2、链式存储1)头插法删除运算#include<iostream.h>#defineelemtypeintclasslink{public:elemtypedata;link*next;};classlinklist{protected:link*head;public:link*hcreat(){link*s,*p;elemtypei;cout<<"输入多个结点数值,为0时算法结束";cin>>i;p=newlink;p->next=NULL;while(i){s=newlink;s->data=i;s->next=p->next;p->next=s;cin>>i;}returnp;}voidprint(link*head){link*p;p=head->next;while(p->next!=NULL){cout<<p->data<<"->";p=p->next;}cout<<p->data;cout<<endl;}voiddel(link*head,elemtypex){link*p,*q;q=head;p=head->next;while((p!=NULL)&&(p->data!=x)){q=p;p=p->next;}if(p==NULL)cout〈〈要删除的结点不存在!";else{q->next=p->next;delete(p);}}};voidmain(){elemtypex,y;link*p,*q;linklista;p=a.hcreat();a.print(p);cout〈〈‘请输入要删除的元素:";cin»y;a.del(p,y);a.print(p);}j\tri 0111iiica \iviii_iLrnpilwinu口i输人多个結点数値,为0时算法结束122334505->4->33->22->1養输入要删除的元素;335->4->22->1Pressnnykeytocontinu.e—运算结果:2)尾插法插入运算#includeviostream.h>#defineelemtypeintclasslink{public:elemtypedata;link*next;};classlinklist{protected:link*head;public:link*hcreat(){link*s,*p,*r;elemtypei;coutvv"输入多个结点数值,为0时算法结束";cin>>i;p=r=newlink;p->next=NULL;while(i){s=newlink;s->data=i;r->next=s;r=s;cin>>i;}r->next=NULL;returnp;}voidprint(link*head){link*p;p=head->next;while(p->next!=NULL){cout<<p->data<<"->";p=p->next;}cout<<p->data;cout<<endl;}link*Locate(link*head,elemtypex){link*p;p=head->next;while((p!=NULL)&&(p->data!=x))p=p->next;returnp;}voidinsert(link*head,elemtypex,elemtypey){link*p,*s;s=newlink;s->data=y;if(head->next==NULL){head->next=s;s->next=NULL;}p=Locate(head,x);if(p==NULL)cout<<"插入位置非法!”;else{s->next=p->next;p->next=s;}}};voidmain(){
elemtypex,y;link*p,*q;linklista;p=a.hcreat();a.print(p);coutvv"请输入插入位置的元素值:cin>>x;coutvv"请输入待插入元素值:";cin»y;a.insert(p,x,y);a.print(p);}1/21/2一口5个4331->2->33->4->533腮素严331->2->33->3->4->5PressanyIteytocontinLie运算结果:四、实验小结:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 联赛比赛制度规范
- 房屋清理安全合同范本
- 房间装修劳务合同范本
- 承揽加工项目合同范本
- 手机团队管理规范制度
- 校园快递管理规范制度
- 村务监督制度执行规范
- 机构午睡制度规范要求
- 文体中心消防制度规范
- 规范下乡补助报销制度
- 教育机构安全生产举报奖励制度
- 妊娠合并胆汁淤积综合征
- GB/T 4706.11-2024家用和类似用途电器的安全第11部分:快热式热水器的特殊要求
- FZ∕T 61002-2019 化纤仿毛毛毯
- 《公输》课文文言知识点归纳
- 碎石技术供应保障方案
- 园林苗木容器育苗技术
- 23秋国家开放大学《机电一体化系统设计基础》形考作业1-3+专题报告参考答案
- 2023年工装夹具设计工程师年终总结及下一年计划
- 第七章腭裂课件
- 儿科学热性惊厥课件
评论
0/150
提交评论