《数据结构》实验指导书(源代码)

《数据结构》实验指导书(源代码)

ID:1245177

大小:707.50 KB

页数:50页

时间:2017-11-09

《数据结构》实验指导书(源代码)_第1页
《数据结构》实验指导书(源代码)_第2页
《数据结构》实验指导书(源代码)_第3页
《数据结构》实验指导书(源代码)_第4页
《数据结构》实验指导书(源代码)_第5页
资源描述:

《《数据结构》实验指导书(源代码)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一线性表的链式存储结构一、实验目的:1.掌握线性表的链式存储结构。2.熟练地利用链式存储结构实现线性表的基本操作。3.能熟练地掌握链式存储结构中算法的实现。二、实验内容:1.用头插法或尾插法建立带头结点的单链表。2.实现单链表上的插入、删除、查找、修改、计数、输出等基本操作。三、实验要求:1.根据实验内容编写程序,上机调试、得出正确的运行程序。2.写出实验报告(包括源程序和运行结果)。四、实验学时:2学时五、实验步骤:1.进入编程环境,建立一新文件;2.参考以下相关内容,编写程序,观察并分析输出结果。①定义单链表的数据类型,然后将头插法和尾插法、插入、删除、查找、修改、计

2、数、输出等基本操作都定义成子函数的形式,最后在主函数中调用它,并将每一种操作前后的结果输出,以查看每一种操作的效果。②部分参考程序//单链表的建立(头插法),插入,删除,查找、修改、计数、输出#include#defineelemtypeintstructlink{elemtypedata;//元素类型link*next;//指针类型,存放下一个元素地址};//头插法建立带头结点的单链表link*hcreat(){links,p;elemtypei;cout<<”输入多个结点数值(用空格分隔),为0时算法结束”;cin>>i;p=newlink;p->

3、next=NULL;while(i)//当输入的数据不为0时,循环建单链表{s=newlink;s->data=i;s->next=p->next;p->next=s;cin>>i;}50returnp;}//输出单链表voidprint(1ink*head){1ink*p;p=head->next;while(p->next!=NULL){cout<data<<”->”;//输出表中非最后一个元素p=p->next;}cout<data;//输出表中最后一个元素cout<

4、ad,elemtypex){Link*p;p=head->next;while((p!=NULL)&&(p->data!=x))p=p->next;returnp;}//在head为头指针的单链表中,删除值为x的结点voiddeletel(1ink*head,elemtypex){1ink*p,*q;q=head;p=head->next;while((p!=NULL)&&(p->data!=x)){q=p;p=p->next;}If(p==NULL)cout<<“要删除的结点不存在”;elseq->next=p->next;delete(p);}}//在头指针head所指的

5、单链表中,在值为x的结点之后插入值为y的结点voidinsert(1ink*head,elemtypex,elemtypey)50{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;}}//将单链表p中所有值为x的元素修改成yvoidchange(1ink*p,elemtypex,elemtype

6、y){link*q;q=p->next;while(q!=NULL){if(q->data==x)q->data=y;q=q->next;}}voidcount(1ink*h)//统计单链表中结点个数{1ink*p;intn=0;p=h->next;while(p!=NULL){n++;p=p->next;}returnn;}voidmain(){intn;elemtypex,y;link*p,*q;p=hcreat();//头插法建立链表print(p);//输出刚建立的单链表50cout<<”请输入要删除的元素”;cin>>y;deletel(p,y);print(p);

7、//输出删除后的结果cout<<”请输入插入位置的元素值(将待插元素插入到它的后面)”;cin>>x;cout<<”请输入待插元素值”;cin>>y;insert(p,x,y);print(p);//输出插入后的结果cout<<”请输入要修改前、后的元素值”;cin>>x>>y;change(p,x,y);print(p);cout<<”请输入要查找的元素值”;cin>>x;q=Locate(p,x);if(q==NULL)cout<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。