实训-链表及其运算_第1页
实训-链表及其运算_第2页
实训-链表及其运算_第3页
实训-链表及其运算_第4页
实训-链表及其运算_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实训-链表及其运算数 据 结 构实验内容与上机指导实训-链表及其运算一、实验目的1. 掌握链表存储结构的特点2. 熟练掌握单链表的基本运算3. 掌握循环链表和双链表的特点和基本运算二、实验内容1. 建立一个单链表,显示链表中每个结点的数据,并做删除和插入处理。实验说明(1) 建立链表是从无到有地建立起一个链表,即一个一个地输入各结点数据,并建立起前后相互链接的关系。实验内容与上机指导(2) 显示链表是将链表中各结点的数据依次显示。设一个指针变量p,先指向第1个结点,显示p所指的结点,然后p后一个结点再显示之,直到链表尾结点。(3) 删除链表中的结点是从p指向第1个结点开始,检查该结点的数据是否

2、等于要删除的数据,如果相等就将该结点删除,如不相等,则将p后移一个结点,如此进行下去,直到表尾为止。(4) 插入结点是将一个结点插入到已知的链表中,且保持结点的数据按原来的递增次序排列。 2. 建立一个双链表,从链首开始,顺序显示链表中的所有结点的数据,然后从链尾开始,反序显示链表中所有结点的数据,最后将一个新的结点插入到链表中。实验内容与上机指导实验说明(1)设双向链表的类型定义如下: struct chn struct chn *prior; struct chn *next; char data100;prior是指向直接前趋结点的指针,next是指向直接后继结点的指针。结点的数据域为字

3、符串。实验内容与上机指导(2) 建立双链表时,用到复制字符串库函数: strcpy(char *destin, char *source); 该函数的功能是将字符串source的内容复制到字符型数组destin中。在本程序中应用此函数是将输入到字符数组buf中的字符串复制到双链表一个结点的数据域中。(3) 通过向后指针next,可以从链首向后顺序显示链表中各结点的数据;通过向前指针prior可以从链尾反序显示链表中各结点的数据。(4) 修改向前、向后指针可以实现从双链表中删除和插入结点。设该双链表没有空表头结点,即其链首结点的prior域为NULL,其链尾结点的next域为NULL。 实验内容与上机指导3. 建立如图所示的循环链表,编写一个程序将所有箭头方向取反。实验内容与上机指导实验说明(1) 因为此链表为循环链表,所以建此链表时最后一个结点的指针域不能是p-next=NULL,而是指向第一个结点,即p-next=head;p=head;(2) 为了将链表的所有箭头取反,需从头开始扫描单链表,将第一个结点的next域指向最后一个结点,将第二个结点的next域指向第一个结点,将第三个结点的next域指向第二个结点,直到最后一个结点用head指向它。(3) 判定最后一个结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论