实验一 线性表
一、 实验目的
1.熟悉线性表的顺序和链式存储结构
2.掌握线性表的基本运算
3.能够利用线性表的基本运算完成线性表应用的运算
二、 实验目的
1.设有一个线性表 E={e
1
, e
2
, … , e
n-1
, e
n
},设计一个算法,将线性表逆置,即使元素排列次
序颠倒过来,成为逆线性表 E’={ e
n
, e
n-1
, … , e
2
, e
1
},要求逆线性表占用原线性表空间,
并且用顺序表和单链表两种方法表示,分别用两个程序来完成。
2.已知由不具有头结点的单链表表示的线性表中,含有三类字符的数据元素(字母、数字
和其他字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含有同一类
的字符,且利用原表中的结点空间,头结点可另辟空间。
实验二 栈和队列
一、实验目的
1.熟悉栈和队列的顺序和链式存储结构
2.掌握栈和队列的基本运算
3.能够利用栈和队列的基本运算完成栈和队列应用的运算
二、实验内容
1.设单链表中存放有 n 个字符,试编写算法,判断该字符串是否有中心对称的关系,例如
xyzzyx 是中心对称的字符串。(提示:将单链表中的一半字符先依次进栈,然后依次出
栈与单链表中的另一半字符进行比较。)
2.假设以数组 sequ[m]存放循环队列的元素,同时设变量 rear 和 quelen 分别指示循环队列
中队尾元素的位置和内含元素的个数。编写实现该循环队列的入队和出队操作的算法。
提示:队空的条件:sq->quelen==0;队满的条件:sq->quelen==m。)
实验三 数组
一、实验目的
1.熟悉数组的结构
2.掌握矩阵的压缩存储
3.能够对数组和矩阵的压缩存储进行运算
二、实验内容
1. 若在矩阵 A
m×n
中存在一个元素 A[i-1[j-1],其满足 A[i-1[j-1]是第 i 行元素中最小
值,且又是第 j 列元素中最大值,则称此元素为该矩阵的一个马鞍点。用二维数组存储
矩阵 A
m×n
,设计算法求出矩阵中所有马鞍点。