元素　ei　的地址计算公式:　Locate(ei)　=　Locate(e0)　+　c　*　i　其中　c　=　sizeof(DataType)　,一个元素占用的存储量　3　13　en-1　Locate(e0)+　(n-1)*c　en-1　n-1　…　…　ei　Locate(e0)+i*c　ei　i　…　…　…　…　e1　Locate(e0)+c　e1　1　e0　Locate(e0)　e0　0　数据元素　存储地址　数据元素　逻辑地址　线性表的顺序存储结构示意图　14　顺序表,可看作以数组作为基础实现的线性表　数组的元素个数固定,线性表的元素个数可以随操作　改变,需要设法弥合两者之间的差异　方式:创建一个大数组,表元素存　在数组前面一段　•　表元素应密集地连续存放,以便能用数　组下标作为表元素索引(效率)　•　需要记录表中元素个数。必须维持元素　个数记录和表中实际元素个数一致　255　108　44　4　1024　表中　当前　存在　的　元素　n　数组大小确定了顺序表的最大容量(需根　据实际确定),也使插入操作有可能失败　连续存放给删除操作的实现带来问题　15　定义1:　DataType　elements[NMAX];　int　n;　/*　元素个数n　n　=　0;　/*分配成功,空表长度为0　*/　else　printf("Out　of　space!\n");　/*分配失败*/　return　palist;　}　20　e0　e1　e2　e6　p　e5　e4　e3　e0　e1　e2　e6　p　e5　e4　e3　e0　e1　e2　e6　p　e5　e4　e3　x　算法　算法2.2　2.2　顺序表的插入　顺序表的插入　int　int　insert_　insert_seq　seq(　(　PSeqList　palist　PSeqList　palist,　,　int　int　p,　p,　DataType　DataType　x　)　x　)　移动元素,腾出空位后,把新元素存入空位　21　/*在palist所指顺序表中下标为p的元素之前插入元素x*/　int　insert_seq(PSeqList　palist,　int　p,　DataType　x)　{　int　q;　if　(　palist->n　==　NMAX　)　{　/*　顺序表已满,插入失败　*/　printf("Seq-list　ove