《数据结构》实验报告模板附实例实验一线性表的基本操作实现.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一线性表的基本操作实现及其应用
一、实验目的
1、熟练掌握线性表的基本操作在两种存储结构上的实现,其中以熟悉各种链表的操作为重点。
2、巩固高级语言程序设计方法与技术,会用线性链表解决简单的实际问题。
二、实验内容
√1、单链表的表示与操作实现( * )
2、约瑟夫环问题
3、Dr.Kong的艺术品
三、实验要求
1、按照数据结构实验任务书,提前做好实验预习与准备工作。
2、加“*”题目必做,其他题目任选;多选者并且保质保量完成适当加分。
3、严格按照数据结构实验报告模板和规范,及时完成实验报告。
四、实验步骤
(说明:依据实验内容分别说明实验程序中用到的数据类型的定义、主程序的流程以及每个操作(成员函数)的伪码算法、函数实现、程序编码、调试与分析、总结、附流程图与主要代码)
㈠、数据结构与核心算法的设计描述
(程序中每个模块或函数应加注释,说明函数功能、入口及出口参数)
1、单链表的结点类型定义
/* 定义DataType为int类型*/
typedef int DataType;
/* 单链表的结点类型*/
typedef struct LNode
{ DataType data;
struct LNode *next;
}LNode,*LinkedList;
2、初始化单链表
LinkedList LinkedListInit( )
{ // 每个模块或函数应加注释,说明函数功能、入口及出口参数} 3、清空单链表
void LinkedListClear(LinkedList L)
{// 每个模块或函数应加注释,说明函数功能、入口及出口参数}
4、检查单链表是否为空
int LinkedListEmpty(LinkedList L)
{ …. }
5、遍历单链表
void LinkedListTraverse(LinkedList L)
{
….
}
6、求单链表的长度
int LinkedListLength(LinkedList L)
{ ….}
7、从单链表表中查找元素
LinkedList LinkedListGet(LinkedList L,int i)
{ //L是带头结点的链表的头指针,返回第i 个元素}
8、从单链表表中查找与给定元素值相同的元素在链表中的位置
LinkedList LinkedListLocate(LinkedList L, DataType x) { ……}
9、向单链表中插入元素
void LinkedListInsert(LinkedList L,int i,DataType x)
{ // L 为带头结点的单链表的头指针,本算法
// 在链表中第i 个结点之前插入新的元素x
}
10、从单链表中删除元素
void LinkedListDel(LinkedList L,DataType x)
{ // 删除以L 为头指针的单链表中第i 个结点}
11、用尾插法建立单链表
LinkedList LinkedListCreat( )
{ ……}
㈡、函数调用及主函数设计
(可用函数的调用关系图说明)
㈢程序调试及运行结果分析
㈣实验总结
五、主要算法流程图及程序清单
1、主要算法流程图:
2、程序清单
(程序过长,可附主要部分)
说明:以后每次实验报告均按此格式书写。
我在布置实验室时,仅给出实验名称、实验目的、实验内容及相关数据结构。
题目一程序参考框架
# include
# include
# include
# include
# include
/* 定义ElemType为int类型*/
typedef int ElemType;
#define TRUE 1
#define FALSE 0
#define NULL 0
#define flag -1
/* 单链表的结点类型*/
typedef struct LNode
{ElemType data;
struct LNode *next;
} LNode,*LinkedList;
/* 初始化单链表*/
LinkedList LinkedListInit()
{ }
/* 清空单链表*/
void LinkedListClear(LinkedList L)
{ }
/* 检查单链表是否为空*/
int LinkedListEmpty(LinkedList L)
{ }
/* 遍历单链表*/
void LinkedListTraverse(LinkedList L)
{ }
int LinkedListLength (LinkedList L)
{ }
LinkedList LinkedListGet (LinkedList L, int i)
{ }
LinkedList LinkedListLocate ( LinkedList L, ElemType x) { }