《数据结构》 实验报告模板(附实例) ---实验一 线性表的基本操作实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

相关文档
最新文档