链表的基本操作-数据结构实验报告.pdfVIP

  • 125
  • 0
  • 约1.04万字
  • 约 13页
  • 2021-11-26 发布于上海
  • 举报
大学数据结构实验报告 课程名称 数据结构实验 第(四)次实验 实验名称 链表的基本操作 学生姓名 于歌 专业班级 学号 实验成绩 指导老师(签名 ) 日期 2018 年 10 月 01 日 一、实验目的 1. 学会定义单链表的结点类型,实现对单链表的一些基本操作和具体 的函数定义,了解并掌握单链表的类定义以及成员函数的定义与调用。 2. 掌握单链表基本操作及两个有序表归并、 单链表逆置等操作的实现。 二、实验要求 1.预习 C 语言中结构体的定义与基本操作方法。 2.对单链表的每个基本操作用单独的函数实现。 3.编写完整程序完成下面的实验内容并上机运行。 4.整理并上交实验报告。 三、实验内容: 1.编写程序完成单链表的下列基本操作: (1)初始化单链表 La (2 )在 La 中插入一个新结点 (3 )删除 La 中的某一个结点 (4 )在 La 中查找某结点并返回其位置 (5 )打印输出 La 中的结点元素值 (6 )清空链表 (7 )销毁链表 2 .构造两个带有表头结点的有序单链表 La 、Lb ,编写程序实现将 La 、 Lb 合并成一个有序单链表 Lc 。 四、思考与提高: 1.如果上面实验内容 2 中合并的表内不允许有重复的数据该如何操 作? 2.如何将一个带头结点的单链表 La 分解成两个同样结构的单链表 Lb , Lc ,使得 Lb 中只含 La 表中奇数结点, Lc 中含有 La 表的偶数结点? 五、实验设计 1.编写程序完成单链表的下列基本操作: (1)初始化单链表 La LinkList InitList() { int i,value,n; LinkList H=(LinkList)malloc(sizeof(LNode)); LinkList P=H; P-next=NULL; do{ printf( 请输入链表的长度 :); scanf(%d,n); if(n=0) printf( 输入有误请重新输入! \n); }while(n=0); printf( 请输入各个元素 :\n); for(i=0; in; i++) { scanf(%d,value); LinkList NEW = (LinkList)malloc(sizeof(LNode)); NEW-data=value; P-next=NEW; NEW-next=NULL; P=NEW; } printf( 链表建立成功! \n); return H-next; } (2)在 La 中插入一个新结点 LinkList InsertList(LinkList L,int i,ElemType value) { LinkList h,q,t=NewLNode(t,value); int x=0; h=q=L; if(i==1) t-next=h, h=t; else { while(x++i-2) q=q-next; t-next=q-next; q-next=t;

文档评论(0)

1亿VIP精品文档

相关文档