数据结构实验指导(3)

6.打开FileView双击SqList.cpp,完成源文件的编写和填空。SqList.cpp主要含main()函数的实现。 7.编译运行。

9

实验2 线性表的链式存储结构的实现及其应用

实验目的

1. 掌握线性表的建立、插入、删除等基本操作的编程实现,进一步编程实现查找、排序等

操作,存储结果采用顺序表存储结构。

2. 理解利用基本操作进行一些实际的应用型程序设计。

实验要求

1. 可以依次完成主要功能来体现功能的正确性,也可以用菜单管理完成大部分功能,要求

可以重复运行。

2. 准备好测试数据,程序调试正确,有执行结果。

3. 程序是自己开发的,在界面上注明***原创;参考或改写他人的,注明***参考他人版。

实验内容(基础题必做,应用题任选1个)

1、基础题:

线性表基本操作的实现(演示单链表的创建、插入、删除、查找、输出等操作),通过简单实例测试各基本操作函数算法的正确性。基本操作函数如下: Status InitList(LinkList &L)

//初始化只含有头结点的空的单链表,返回函数状态值 void DestroyList(LinkList &L) //销毁单链表

void ClearList(LinkList &L) //清空单链表,仅保留头结点 bool ListEmpty(LinkList L) //判断是否为空链表 int ListLength(LinkList L) //返回单链表的长度 void PrintList(LinkList L)

//遍历函数,顺序输出单链表中的各元素的值

Status GetElem(LinkList L,int i,ElemType &e) //用参数e返回单链表L中第i个元素的值

Status ListInsert(LinkList &L,int i,ElemType e) //在单链表L的第i个数据元素之前插入数据元素e

Status ListDelete(LinkList &L,int i,ElemType &e) //删除单链表L中第i个结点,并用e返回其值 int LocateElem(LinkList L,ElemType e)

//返回e元素在单链表L中的位序,若不存在,返回0 2、应用题:

(1)将一个已知的单链表进行逆置运算,如(a1,a2,…,an)变为(an,…a2,a1)。 (2)求集合A、B的并集C。

(3)归并两个有序表La和Lb成一个新的有序表Lc。有序指值非递减。

10

实验步骤参考:

1.打开Visual C++6.0,“文件”菜单——>“新建”——>“工程”——>“win32 Console Application”——>输入“工程名称”和存储“位置”——>“确定”。

2.默认创建“一个空工程”——>“完成”——>“确定”。

11

3. “文件”菜单——>“新建”——>“文件” ——>“C/C++ Header File”——>输入文件名LinkList.h(默认为.h类型,可省去.h)——>“确定”

4.“文件”菜单——>“新建”——>“文件” ——>“C++ Source File”——>输入文件名LinkList.cpp(默认为.cpp类型,可省去.cpp)——>“确定”。

5.打开FileView双击LinkList.h,完成头文件的编写。LinkList.h主要含结构体的定义和函数的实现。

12

联系客服:779662525#qq.com(#替换为@)