版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-. z.班级:计算机13-2*:1:成绩:_实验二单链表操作验证实验目的掌握线性表的存储构造;验证单链表及其根本操作的实现;进一步掌握数据构造及算法的程序实现的根本方法。实验容用头插法或尾插法建立带头结点的单链表;对已建立的单链表实现插入、删除、查找等根本操作。设计与编码本实验用到的理论知识模板类、多文件系统,链表的操作算法设计参见课本数据构造C+版编码将算法转化为c+程序,设计主函数完成对各成员函数的调用。源代码:/LinkList.h#ifndef _LINKLIST_H#define _LINKLIST_H#include using namespace std;template st
2、ruct Node T data;struct Node*ne*t;template class LinkList Node*first; /单链表的头指针public:LinkList(T a,int n); /建立有n个元素的单链表LinkList(); /析构函数void CreateList(int n); void Insert(int i,T *); /在单链表中第i个位置插入值为*的节点T Delete(int i); /在单链表中删除第i个节点int Locate(T *); /求单链表中值为*的序号void PrintList(); /遍历单链表,按序号依次输出个元素;tem
3、plate LinkList:LinkList(T a,int n) first=new Node;first-ne*t=NULL; /初始化一个空链表for ( int i=n; i=0; i-) Node *s;s=new Node;s-data=ai;s-ne*t=first-ne*t; /为每个数组元素建立一个结点first-ne*t=s; /插入到头结点之后 /构造函数,创立一个新的链表template LinkList:LinkList() Node*p;p=new Node;p=first; /工作指针p初始化while (p) /释放单链表的每一个结点的存储空间Node*q;q
4、=new Node;q=p; /暂存被释放结点p=p-ne*t; /工作指针p指向被释放结点的下一个结点,使单链表不断开delete q; /析构函数,释放空间template void LinkList:Insert(int i,T *) Node*p;p=new Node;p=first; /工作指针p初始化int j=0;while (p&jne*t; /工作指针p后移j+;if (!p) throw位置;else Node*s;s=new Node;s-data=*; /向存申请一个结点s,其数据域为*s-ne*t=p-ne*t; /将结点s插入到结点p之前p-ne*t=s; /插入元
5、素到位置itemplate T LinkList:Delete(int i) Node*p,*q;T *;p=new Node;p=first;int j=0; /工作指针p初始化while (p&jne*t;j+;if (!p | !p-ne*t)throw位置; /结点p不存在或结点p的后继结点不存在else q=p-ne*t;*=q-data; /暂存被删结点p-ne*t=q-ne*t; /摘链delete q;return *; /删除位置i的函数template int LinkList:Locate(T *) Node*p;p=new Node;p=first-ne*t;int j
6、=1;while (p&p-data!=*) p=p-ne*t; /工作指针p后移j+;if (p)return j;elsereturn 0; /查找template void LinkList:PrintList() Node*p;/设置工作指针p=first-ne*t;/从首元结点开场遍历int i=1;/元素位序while(p)coutdatane*t;i+;coutendl; /遍历显示链表#endif/LinkList.cpp#include #include Windows.h#include LinkList.husing namespace std;char pause;/t
7、ypedef int T;int main()int n;cout输入要创立的链表的元素个数(n;coutendl;int a100;cout请依次输入数组元素的值。endl;for( int i=0; in; i+) cout输入aiai;coutendl;LinkList L(a,n);/T num,prior_num;/int num,prior_num;int num;int choice;docout1-插入操作n;cout2-删除操作n;cout3-查找操作n;cout4-输出链表n;cout5-退出n;coutchoice;switch(choice)case 1:/在指定位置插
8、入元素int i;couti;coutendl;coutnum;coutendl;tryL.Insert(i,num);catch(char *error) couterrorendl; break;case 2:/删除指定位置元素couti;coutendl;trynum=L.Delete(i);cout被删除元素为:numendl;catch(char *error) couterrorendl; break;case 3:/ 按值查找coutnum;/i=L.Locate(num);cout查询的元素num位于链表的位置为:iendl;break;case 4:/显示表L.PrintList();coutendl;break;case 5:/退出coutE*itendl;break;default:cout无效的选项n;break;while(choice!=5);return 0;运行与调试在调试程序的过程中遇到什么问题,是如何解决的?进展运行时没有错误,但输出的数组是倒序的,将LinkList methon的for循环的条件更改之后正常运行并到达预想效果。设计了哪些设计数据?测试结果
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 摄影婚纱照合同范本
- 救护车出租合同范本
- 拍网剧所需合同范本
- 用工安全协议书模板
- 抵押车出售合同协议
- 生物燃油合同协议书
- 暑假员工合同协议书
- 强制执行合伙协议书
- 形象制作协议书范本
- 数字孪生虚拟仿真技术(NX MCD)课件全套 项目1-5 NX MCD认知- MCD实战案例
- GB/T 40822-2021道路车辆统一的诊断服务
- GB/T 34800-2017蛋白酶K酶活力及杂质检测方法
- GB/T 21198.6-2007贵金属合金首饰中贵金属含量的测定ICP光谱法第6部分:差减法
- 有限空间安全教育培训制度
- 第4章逆向物流网络规划与设计课件
- 过敏性休克的急救(共31张PPT)
- 国外汉语课堂教学案例课件
- DB32T 3753-2020 江苏省装配式建筑综合评定标准
- 二尖瓣峡部的消融和验证
- 科研项目申请书撰写技巧与形式审查要点(51张)课件
- 英语presentation-墨西哥亡灵节
评论
0/150
提交评论