数据结构实验指导书(级)
数 据 结 构 实 验 指 导 书
计算机学院专业基础教研室
2008 年 3 月
第 1 页第 1 页
数据结构实验指导书(级)
实验一 线性表及其应用
一、实验目的
1.熟悉 C 语言的上机环境,进一步掌握 C 语言的结构特点。
2.掌握线性表的顺序存储结构的定义及 C 语言实现。
3.掌握线性表的链式存储结构——单链表的定义及 C 语言实现。
4.掌握线性表在顺序存储结构即顺序表中的各种基本操作。
5.掌握线性表在链式存储结构——单链表中的各种基本操作。
二、实验内容
1.顺序线性表的建立、插入及删除。
2.链式线性表的建立、插入及删除。
三、实验步骤
1.建立含 n 个数据元素的顺序表并输出该表中各元素的值及顺序表的长
度。
2.利用前面的实验先建立一个顺序表 L={21 ,23 ,14,5 ,56 ,17,31} ,
然后在第 i 个位置插入元素 68。
3.建立一个带头结点的单链表,结点的值域为整型数据。要求将用户输
入的数据按尾插入法来建立相应单链表。
四、实现提示
1.由于C 语言的数组类型也有随机存取的特点,一维数组的机内表示就
是顺序结构。因此,可用 C 语言的一维数组实现线性表的顺序存储。
在此,我们利用 C 语言的结构体类型定义顺序表:
#define MAXSIZE 1024
typedef int elemtype; /* 线性表中存放整型元素 */
typedef struct
{ elemtype vec[MAXSIZE];
int len; /* 顺序表的长度 */
第 2 页第 2 页
数据结构实验指导书(级)
}sequenlist;
将此结构定义放在一个头文件 sqlist.h 里,可避免在后面的参考程序中代
码重复书写,另外在该头文件里给出顺序表的建立及常量的定义。
2. 注意如何取到第 i 个元素,在插入过程中注意溢出情况以及数组的下
标与位序(顺序表中元素的次序)的区别。
3.单链表的结点结构除数据域外,还含有一个指针域。用 C 语言描述结
点结构如下:
typedef int elemtype;
typedef struct node
{ elemtype data; //数据域
struct node *next; //指针域
}linklist;
注意结点的建立方法及构造新结点时指针的变化。构造一个结点需用到 C
语言的标准函数 malloc() ,如给指针变量 p 分配一个结点的地址:
p=(linklist *)malloc(sizeof(linklist));该语句的功能是申请分配一个类型为
linklist 的结点的地址空间,并将首地址存入指针变量 p 中。当结点不需要时
可以用标准函数 free(p)释放结点存储空间,这时 p 为空值(NULL )。
五、思考与提高
1. 如果按由表尾至表头的次序输入数据元素,应如何建立顺序表。
2. 在 main 函数里如果去掉L=a 语句,会出现什么结果?
六、完整参考程序
1.顺序线性表的建立、插入及删除。
#include stdio.h
#include conio.h
#define MAX 30 //定义线性表的最大长度
enum BOOL{False,True}; //定义 BOOL 型
typedef struct{
char elem[MAX]; //线性表
int last; //last 指示当前线性表的长度
第 3 页第 3 页
您可能关注的文档
最近下载
- 城镇直埋供热管道电预热安装施工工法(技术方案).pdf VIP
- 村务监督主任表态发言稿范文 .doc VIP
- 2025~2026学年济南市“市中区”七年级第一学期数学期末考试试题以及答案.docx VIP
- 《自然教育志愿者服务规范》.pdf VIP
- 37、《高层建筑混凝土结构技术规程》JGJ 3-2010_1.pdf VIP
- 公路工程检测课件.pptx
- 17J008 挡土墙(重力式、衡重式、悬臂式)(最新).pdf VIP
- 民事诉讼法(第六版)教学课件完整版.pptx VIP
- 《水利工程施工质量检验与评定规程》(2025版).docx VIP
- 人教版七年级上册英语期末复习词汇与语法专练.docx VIP
原创力文档

文档评论(0)