版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.数据结构实验报告实验目的1. 熟练掌握线性表的顺序存储结构、链式存储结构,并分别实现线性表的基本操作。2. 熟练掌握顺序存储结构中算法的实现。3. 培养编程和上机调试能力。实验容1. 建立含有若干元素的顺序表,并实现插入、删除、修改、查找等基本操作。并在屏幕上输出。2. 建立含有若干元素的链式表,并实现插入、删除、修改、查找等基本操作。并在屏幕上输出。实验步骤打开 vc6.0,新建文件。编写代码,运行、调试、输出结果。实验代码顺序表#include <iostream.h> #define elemtype int const int maxsize=1000; class se
2、quenlistprotected:elemtype amaxsize; int len;public:void setnull()len=0;void input(int n)for(int j=1;j<=n;j+) cin>>aj;len=n;void print(). . .for(int i=1;i<=len;i+) cout<<ai<<" "cout<<endl;void length()cout<<"现表长度 "<<len<<endl;void i
3、nsert(elemtype x,int i)int j; if(len>=maxsize-1)cout<<"overflow"<<endl; else if(i<1)|(i>len+1)cout<<"position is not correct!"<<endl;elsefor(j=len;j>=i;j-)aj+1=aj; ai=x;len+;void deletel(int i)int j; if(i<1)|(i>len)cout<<"posit
4、ion is not correct!"<<endl;elsefor(j=i+1;j<=len;j+) aj-1=aj;len-;int locate(elemtype x)int j=1; while(j<=len)&&(aj!=x)j+;if(j<=len)return j;elsereturn 0;void change(elemtype x,elemtype y)int j; for(j=1;j<=len;j+)if(aj=x)aj=y;void main()sequenlist l; elemtype x,y; int n
5、,j; l.setnull();cout<<" 请输入表中元素个数:" cin>>n;cout<<" 请输入 "<<n<<" 个元素,建立顺序表"<<endl; l.input(n);l.print();l.length;cout<<" 请输入要插入的元素及位置:"cin>>x>>j;l.insert(x,j);l.print();cout<<" 请输入要删除的元素位置:" c
6、in>>j;l.deletel(j);l.print();l.length;cout<<" 请输入要查找的元素:"cin>>x; j=l.locate(x); if(j!=0)cout<<x<<" 在第 "<<j<<" 个位置 "elsecout<<" 找不到 "cout<<endl;l.print();cout<<"请输入要更新前的元素值:"cin>>x;cout
7、<<"请输入要更新后的元素值:"cin>>y;l.change(x,y);l.print();链式表:#include <iostream.h> #define elemtype int class linkpublic:elemtype data; link *next;class linklistprotected:link *head; public:link *hcreat()link *s,*p; elemtype i;cout<<" 输入多个结点数值(用空格分隔),为 0 时算法结束 "cin&
8、gt;>i; p=new link;p->next=null;while(i)s=new link; s->data=i;s->next=p->next; p->next=s; cin>>i;return p;void print (link *head)link *p; p=head->next;while(p->next!=null)cout<<p->data<<"->" p=p->next;cout<<p->data; cout<<end
9、l;link *locate(link *head,elemtype x)link *p; p=head->next;while(p!=null)&&(p->data!=x)p=p->next; return p;void deletel(link *head,elemtype x)link *p,*q; q=head; p=head->next;while(p!=null)&&(p->data!=x)q=p;p=p->next;if(p=null)cout<<" 要删除的结点不存在"elseq
10、->next=p->next; delete(p);void insert(link *head,elemtype x,elemtype y)link *p,*s; s=new link; s->data=y;if(head->next=null)head->next=s; s->next=null;p=locate(head,x); if(p=null)cout<<" 插入位置非法 "elses->next=p->next; p->next=s;void change(link *p,elemtype x,
11、elemtype y)link *q; q=p->next;while(q!=null)if(q->data=x)q->data=y; q=q->next;int count(link *h)link *p; int n=0;p=h->next; while(p!=null)n+;p=p->next;return n;void main()int n; elemtype x,y; link *p,*q; linklist a; p=a.hcreat();a.print(p);cout<<" 请输入要删除的元素" cin>
12、>y;a.deletel(p,y);a.print(p);cout<<" 请输入插入位置的元素值(将待插元素插入它的后面)" cin>>x;cout<<" 请输入待插元素值" cin>>y;.a.insert(p,x,y); a.print(p);cout<<" 请输入要修改前、后的元素值"cin>>x>>y; a.change(p,x,y); a.print(p);cout<<" 请输入要查找的元素值" cin>>x;q=a.locate(p,x); if(q=null)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国电建海外审计中心招聘笔试历年参考题库附带答案详解
- 2025上海轨道交通培训中心(集团党委党校)招聘(集团公司内部招聘)笔试历年参考题库附带答案详解
- 2026年六盘水市医疗保障系统事业单位人员招聘考试备考试题及答案详解
- 2026年清远市税务系统事业单位人员招聘考试备考试题及答案详解
- 2026年赤峰市第五医院医护人员招聘笔试模拟试题及答案解析
- 公司合同录入环节联审方案
- 2026年东莞市网格员招聘考试备考试题及答案详解
- 2026年智能制造工程师职业水平考试试题及答案解析
- 市政给排水施工投标答辩方案
- 2026年郑铁西安工程处医院医护人员招聘笔试模拟试题及答案解析
- 2026年机电维修电工考试试题及答案
- 对外投资合作国别(地区)指南 2025 秘鲁
- 义务教育均衡发展质量监测八年级综合试卷测试题
- 5.4基层群众自治制度 课件(共26张)道德与法治统编版八下
- 2026年检察院聘用制书记员招聘笔试试题(含答案)
- 2025年护理质控工作总结及2026年工作计划汇报
- 2025年宁夏事业单位招聘考试(面试)细选试题及试题答案解析
- 个人所得税退税课件
- 2025年微生物检验技术真题卷
- 2024年江苏省苏州市中考化学真题(解析版)
- GB/T 46585-2025建筑用绝热制品试件线性尺寸的测量
评论
0/150
提交评论