绪论
线性表是最简单的一种数据结构,它可以用来描述:n个数据元素的优先序列。记为:L=(a1,a2,…..,an)
按照存储结构它又可以分为顺序存储结构和链式存储结构。而其中线性表的顺序存储结构是最简单最常用的数据结构。定义:
用一段连续地址依次存储表中的数据元素。性质:
顺序存储结构封装需要三个属性:
1.存储空间的起始位置,对于数组data来说,它的位置就是线性表存储空间的存储位置。
2.最大存储容量:数组的长度MaxSize
3.线性表的当前长度:Length时间复杂度–O(n)
关于时间复杂度的分析:
1.若插入和删除的字符位置正好在表的尾部,这时候只需要进行一次操作,因此复杂度为O(1);
2.在其它位置,复杂度均为O(n);关于顺序存储表的优缺点分析:
优点:
1.表中元素的逻辑关系仅仅是顺序关系,无需增加额外的存储空间。
2.可以快速的进行存取元素
缺点:
1.删除和插入需要移动大量数据
2.无法确定容量线性表的顺序存储结构的定义:
顺序表的内容就包括数据和长度。
#define MaxSize 20
struct list
{
int data[MAXLENGTH];
int length;
};
- 线性表的顺序存储结构的查找:
1.在建立的时候需要引入string 库函数以及命名域的声明
2.三种特殊情况:线性表是空表;插入位置在表头之前和表尾之后。
3.顺序表的查找过程:按照下标读入数据直接传递给指针。