实验2-不带头结点的单链表_第1页
实验2-不带头结点的单链表_第2页
实验2-不带头结点的单链表_第3页
实验2-不带头结点的单链表_第4页
实验2-不带头结点的单链表_第5页
全文预览已结束

下载本文档

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

文档简介

上 海 电 力 学 院数据结构 实验报告(2014/2015 学年第2学期)课程编号 课程名称 数据结构 院 (系) 专 业 班 级 学 号 姓 名 实验名称 实验2 不带头结点的单链表 任课老师 卢芳芳 实验2 不带头结点的单链表1【实验目的与要求】1、熟练掌握动态链表结构及有关算法的设计方法。2、理解不带表头结点的单链表的特点,掌握其基本操作。3、熟练掌握运用不带头结点链表表示特定形式的数据的方法,并设计出有关算法。2【实验内容和步骤】已知不带头结点的链表结构定义及头插法建表、尾插法建表和打印链表等函数定义如下(详见slnklist.h文件),基于该文件完成实验题1-实验4.#include #include /*/* 链表实现的头文件,文件名slnklist.h */*/ typedef int datatype; typedef struct link_node datatype info; struct link_node *next; node;typedef node *linklist;/*/*函数名称:creatbystack() */*函数功能:头插法建立单链表 */*/linklist creatbystack() linklist head,s; datatype x; head=NULL; printf(请输入若干整数序列:n); scanf(%d,&x); while (x!=0)/*以0结束输入*/ s=(linklist)malloc(sizeof(node); /*生成待插入结点*/ s-info=x; s-next=head;/*将新结点插入到链表最前面*/ head=s; scanf(%d,&x); return head;/*返回建立的单链表*/*/*函数名称:creatbyqueue() */*函数功能:尾插法建立单链表 */*/linklist creatbyqueue() linklist head,r,s; datatype x; head=r=NULL; printf(请输入若干整数序列:n); scanf(%d,&x); while (x!=0) /*以0结束输入*/ s=(linklist)malloc(sizeof(node); s-info=x; if (head=NULL)/*将新结点插入到链表最后面*/ head=s; else r-next=s; r=s; scanf(%d,&x); if (r) r-next=NULL; return head;/*返回建立的单链表*/*/*函数名称:print() */*函数功能:输出不带头结点的单链表 */*/void print(linklist head) linklist p; int i=0; p=head; printf(List is:n); while(p) printf(%5d,p-info); p=p-next; i+; if (i%10=0) printf(n); printf(n);/*/*函数名称:delList() */*函数功能:释放不带头结点的单链表 */*/void delList(linklist head) linklist p=head; while (p) head=p-next; free(p); p=head; 1. 编写函数lnklist delx(linklist head, datatype x),删除不带头结点单链表head中第一个值为x 的结点。并构造测试用例进行测试。l 程序源代码(注意添加注释)l 运行结果(直接截取结果图)2. 线性表(a1, a2, a3, , an)采用不带头结点的单链表存储,请设计算法函数linklist reverse1(linklist head)和void reverse2(linklist *head)将不带头结点的单链表head倒置,使表变成(an, an-1, an-2, , a2, a1). 。并构造测试用例进行测试。l 程序源代码(注意添加注释)l 运行结果(直接截取结果图)3. 假设不带头结点的单链表head是升序排列的,设计算法函数linklist insert(linklist head,datatype x),将值为x的结点插入到链表head中,并保持链表有序性。分别构造插入到表头、表中和表尾三种情况的测试用例进行测试。l 程序源代码(注意添加注释)l 运行结果(直接截取结果图)4. 编写函数lnklist delallx(linklist head, datatype x),删除不带头结点单链表head中所有值为x 的结点。并构造测试用例进行测试。l 程序源代码(注意添加注释)l 运行结果(直接截取结果图)3

温馨提示

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

评论

0/150

提交评论