实验一 线性表的链式存储 (1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一线性表的链式存储

【实验时间】

【实验地点】

【实验目的和要求】

1.掌握线性表的结构特点和表示方法;

2.掌握线性表链式存储结构特性和基本操作算法;

3.掌握用指针实现单链表的建立、输出、插入和删除的算法。

【实验类型】验证性

【实验时数】2学时

【实验设备】计算机

【参考资料】

1.数据结构题解

2.C程序设计

【实验内容】

熟练掌握线性表的链式表示和实现方法,利用其定义具体的链表结点;利用链表的结构特点,建立单链表;利用链表结点间的指针关系,实现链表的插入和删除。

[具体要求]

(1) 建立单链表时,要首先输入链表长度,根据输入值来确定所建链表的结点个数;

(2) 在单链表中插入新结点时,要给出结点的插入位置和数据域的值;

(3) 在单链表中删除某个结点时,要给出要删结点的位置;

(4) 要编写单链表的输出函数,以便能验证程序的执行结果。

【实验分析】

1、实验的第一步应该建立单链表结点类型和程序所需的宏或数据类型,例如:

#define NULL 0 //宏定义NULL的值为0

#define LEN sizeof(struct node) //宏定义LEN,为申请结点空间时做准备

typedef struct

{ int a;

float b;

} elemtype; //定义elemtype类型,这里同学们可以根据自己的情况来自行定义。

typedef struct node

{elemtype data; //data域为elemtype类型的,它应该包含两个子域:a和b

struct node *next;

}NODE , *NODEPTR; //定义了单链表结点类型和单链表结点指针类型

2、对单链表的四种操作进行实现。

(1) NODEPTR creatlink() 建立单链表的函数

很明显这个函数的返回值时结点指针类型的,所以这个函数应该返回的时建立的单链表的头指针。同学们可以根据自己的构思,从前往后或从后往前建立单链表。此外,提醒同学们最好建立带有附加头结点的单链表。

(2)void print(NODEPTR Lh) 输出单链表的函数

这个函数主要是将单链表中各结点的数据域的信息输出出来,输出数据的格式要根据同学们对于链表结点的data域所属的elemtype类型来设定。

(3) void del(NODEPTR Lh,int i) 删除结点的函数

这个函数完成的是在链表Lh中删除指定位置i的结点。i的值是在执行删除操作之前通过键盘输入的。

(4) void insert (NODEPTR Lh, int i) 插入结点的函数

这个函数完成的是在链表Lh中在指定位置i的结点前或后面插入新建结点。i的值是在执行插入操作之前通过键盘输入的。同学们可以根据自己的情况选择是在结点前面插入还是在后面插入。

3、第二步应该构思程序主界面。

本实验要求实验单链表的建立、输出、插入和删除四种具体操作,因此可以主界面中可以给出相应的这四种操作的标题,用户在运行时可以根据自己的需要来选择要进行的操作,形式可以如下:

************************

Creat: 1 Print: 2

Delete: 3 Insert: 4

Esc: 0

************************

please input your choice (0-4):

用户通过键盘输入各操作对应的数码,就可以进入相应的操作了。

这是要使用一个变量(假设为operate_num)来接收用户输入的操作数码,在主函数中利用switch语句根据这个量的值来进行不同的操作。例如:

switch (operate_num)

{case 1:

进行单链表建立操作;break;

case 2:

输出单链表的数据信息;break;

case 3:

输入要删除的结点的位置;

删除指定结点;

break;

case 4:

输入要插入的位置;

插入新建结点;

break;

}

【实验原理、数据(程序)记录】

略。

请同学们根据上面的步骤提示自己编程,不要互相抄袭。

【实验结果】

根据具体执行的情况,写出相应的实验结果。同学们各自执行的结果应该不尽相同。【注意事项】

1.学生上机时要严格遵守实验规章制度,若实验设备出现故障,应及时向实验指导教师反映,不要私自拆卸实验设备。

2.独立完成实验要求的内容,仔细观察和记录实验结果,领会实验目的,并认真完成实验报告。

相关文档
最新文档