1、线性表
概念:线性表是n个元素的有限序列,它们之间的关系可以排成一个线性顺序。a1,a2,....,ai,...,an
n:长度,n=0时,称作空表。
线性结构的特点:
在数据元素的非空有限集中。
存在唯一的一个被称作“第一个”的数据元素。
存在唯一的一个被称作“最后一个”的数据元素。
除了第一元素外,集合中的每个数据元素均只有一个前驱。
除最后一个外,集合中的每个数据元素均只有一个后继。
2、顺序表:用一组地址连续的存储单元存放一个线性表。
特点:实现逻辑上相邻--物理地址相邻。
实现随机存取。
常见的运算:初始化、求长度、取元素、修改、前插、删除、检索、排序。
1)InitList(&L) 初始化,构造一个空的线性表
2)ListLength(L) 求长度,返回线性表中数据元素个数
3)GetElem(L,i,&e) 取表L中第i个数据元素赋值给e
4)LocateElem(L,e) 按值查找,若表中存在一个或多个值为e的结点,返回第一个找到的数据元素的位
序,否则返回一个特殊值。
5)ListInsert(&L,i,e) 在L中第i个位置前插入新的数据元素e,表长加1。
6)ListDelete(&L,i,e) 删除表中第i个数据元素,e返回其值,表长减1。
3、顺序存储结构的优缺点:
优点:
(1)逻辑相邻,物理相邻。
(2)可随机存取任意元素
(3)存储空间使用紧凑
缺点:
(1)插入、删除操作需要移动大量的元素
(2)预先分配空间需要按最大空间分配,利用不充分
(3)表容量难以扩充。