1、线性表:具有同样类型数据元素的有限序列
线性表的长度:有限序列中所含元素的个数
头元素:线性表的第一个元素。无前驱
尾元素:线性表的最后一个元素。无后继
基本操作:增删改查
2、顺序表:线性表的顺序存储,用一段连续的地址依次存储。c语言中用一维数组
(1)顺序表的存储结构:
#define MAXLENGTH 20 struct sequencelist { int data[MAXLENGTH]; int length; };顺序表包括三点:a、存储的起始位置,数组data。b、线性表的最大长度MAXLENGTH;c、线性表的长度length。
(2)增:线性表的插入操作
//insert opration int insert(struct sequencelist *list,int index,int element) { int length = list->length; if(length ==0 || index < 0 || index > length || length >= MAXLENGTH) return ERROR; list->data[index] = element; for(int i = length - 1;i>index;i--) { list->data[i+1] = list->data[i]; } list->length++; return OK; }注:a、index为插入的位置,element为插入的元素b、增操作要进行推断:是否为空;是否已满等。index是否在合法位置。
c、增操作须要将原来的数据后移。
所以要从尾元素操作
d、线性表长度+1
(3)删:线性表的删除操作
// Delete opration int delete(struct sequencelist *list,int index) { int length = list->length; if(length ==0 || index < 0 || index > length-1 ) return ERROR; for(int i = index;i<length-1;i++) { list->data[i] = list->data[i+1]; } list->data[length-1] = '