一.顺序表
顺序表的概念为,即把线性表的结点按逻辑次序依次的存放到一组地址连续的存续单元里,用这种方法存储的线性表简称为顺序表。顺序表是一种是一种随机存取机构。顺序表与数组的区别为,数组定义后的大小一般不能在改变,但是线性表的表长是可变的,如可以进行插入、删除等操作。
二、顺序表上的基本运算
1.对C/C++语言,顺序表可定义如下:
typedef int datatype; //线性表结点的数据结构类型,假设为int
const int maxsize=100; //线性表可能的最大长度,这里假设为100
typedef struct{
datatype data[maxsize]; //线性表的存储向量,第一个结点是data[0]
int n; //线性表的当前长度
}sqlist; //顺序表类型
注:
(1)数据域data是存放线性表各结点的数据空间,下表范围为0~maxsize-1
(2)数据域n记录线性表当前的长度
(3)datatype是线性结点的类型,它应是某种定义过的类型。例如,若线性表是英文字母表,则datatype就是字符类型char
(4)顺序表类型sqlist是一个结构类型,将其当成整体看待,当要访问顺序表的细节时,需要使用成员选择运算符或指针指向运算符。
2.插入运算
顺序表插入的具体算法如下:
int insert (sqlist *L,datatype x,int i){//将x插入到顺序表L的第i个位置上
int j