好文档 - 专业文书写作范文服务资料分享网站

数据结构与算法设计实验指导书

天下 分享 时间: 加入收藏 我要投稿 点赞

第2章 实验内容

2.1 实验1 线性表应用

一、顺序表

目的要求

1.掌握线性表顺序存储结构的特点。 2.掌握线性表顺序存储结构的常见算法。 实验内容

1.输入一组整型元素序列(不少于10个),建立顺序表。

2.在该顺序表中进行顺序查找某一元素,查找成功返回 1,否则返回 0。 3.判断该顺序表中元素是否对称,对称返回 1,否则返回 0。

4.实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。 5.输入整型元素序列(不少于10个),利用有序表插入算法建立一个有序表。 6.利用算法5建立两个非递减有序表,并把它们合并成一个非递减有序表。 7.在主函数中设计一个简单菜单,调用上述算法。 实验说明

1. 算法 1至算法6的有关函数用头文件方式存储,主函数包含该头文件。 2. 存储定义

const int MAXSIZE=15 ; // 表中元素的最大个数 typedef int ElemType; // 元素类型 typedef struct list

{

ElemType elem[MAXSIZE]; // 静态分配 int length; // 表的实际长度 } SqList ; // 顺序表的类型名 3. 建立顺序表时,利用随机函数自动产生数据。

二、单向链表

目的要求

1.掌握单链表的存储特点及其实现。 2.掌握单链表的插入与删除算法的程序实现。 实验内容

1.随机产生或键盘输入一组元素(不少于10个元素),建立一个带头结点的单链表。 2.把单链表中的元素逆置(不允许申请新的结点空间)。 3.删除单链表中所有的偶数元素结点。

4.编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,利用该函数建立一个 非递减有序单链表。

5.利用算法4建立两个非递减有序单链表,然后合并成一个非递增链表。

6.把算法1建立的链表分解成两个链表,其中一个全部为奇数,另一个全部为偶数(尽量 利用已有存储空间)。

7.在主函数中设计一个简单菜单,调用上述算法。 实验说明 1.结点类型定义

typedef int ElemType; // 元素类型 typedef struct LNode

{

ElemType data ;

struct LNode * next ; } LNode, *pLinkList ; 2.为了简单,采用带头结点的单链表。

三、双向链表

目的要求

1.掌握双向链表的存储结构及其实现。 2.掌握双向链表的插入与删除算法的程序实现。 实验内容

1.利用尾插法建立一个双向链表。 2.遍历双向链表。

3.实现双向链表中删除一个指定元素。

4.在非递减有序双向链表中实现插入元素e仍有序的算法。 5.判断双向链表中元素是否对称,若对称返回 1,否则返回 0。 6.设元素为正整型,实现算法把所有奇数排列在偶数之前。 7.在主函数中设计一个简单菜单,调用上述算法。 实验说明

1. 双向链表的类型定义

typedef int ElemType; // 元素类型 typedef struct DuLNode {

ElemType data; DuLNode *prior, *next; } DuLNode, *pDuLinkList;

四、栈与队列

目的要求

1.掌握栈、队列的思想及其存储实现。 2.掌握栈、队列的常见算法的程序实现。 实验内容

1.采用链式存储实现栈的初始化、入栈、出栈操作。 2.采用顺序存储实现栈的初始化、入栈、出栈操作。 3.采用链式存储实现队列的初始化、入队、出队操作。 4.采用顺序存储实现循环队列的初始化、入队、出队操作。 5.在主函数中设计一个简单菜单,调用上述算法。 实验说明

1.顺序栈类型定义

const int MAX=20 ; // 栈的最大值 typedef struct {

ElemType *base; int top; } SqStack; 2. 顺序队列类型定义

const int MAX=20 ; // 队列的最大长度 typedef struct {

ElemType *base; int front,rear; } SqQueue;

2.2 实验2 二叉树应用

目的要求

1.掌握二叉树的存储实现。 2.掌握二叉树的遍历思想。

3.掌握二叉树的常见算法的程序实现。 实验内容

1.输入字符序列,建立二叉链表。 2.中序遍历二叉树:递归算法。

3.中序遍历二叉树:非递归算法。(最好也实现先序,后序非递归算法) 4.求二叉树的高度。 5.求二叉树的叶子数。

6.借助队列实现二叉树的层次遍历。

7.在主函数中设计一个简单的菜单,调用上述算法。 实验说明

1. 类型定义 // 二叉链表存储

#define ElemType char // 元素类型

数据结构与算法设计实验指导书

第2章实验内容2.1实验1线性表应用一、顺序表目的要求1.掌握线性表顺序存储结构的特点。2.掌握线性表顺序存储结构的常见算法。实验内容1.输入一组整型元素序列(不少于10个),建立顺序表。2.在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。3.判断该顺序
推荐度:
点击下载文档文档为doc格式
9ouvc1fx9b75cln2z0an3ef8l940h6007r0
领取福利

微信扫码领取福利

微信扫码分享