梅江区建设局网站,举报网站怎么做,网站建设公司好哪家好,电子商务网站建设的目标是什么线性表
线性表的定义
线性表#xff0c;或称表#xff0c;是一种非常灵便的结构#xff0c;可以根据需要改变表的长度#xff0c;也可以在表中任何位置对元素进行访问、插入或删除等操作。另外#xff0c;还可以将多个表连接成一个表#xff0c;或把一个表拆分成多个表…线性表
线性表的定义
线性表或称表是一种非常灵便的结构可以根据需要改变表的长度也可以在表中任何位置对元素进行访问、插入或删除等操作。另外还可以将多个表连接成一个表或把一个表拆分成多个表。例如26个英文字母的字母表ABC…Z就是一个线性表表中的数据元素是单个字母。在稍复杂的线性表中一个数据元素可以包含若干个数据项。例如在学生基本信息表中每个学生为一个数据元素包括学号、姓名、性别、籍贯、专业等数据项。
由以上示例可以看出它们的数据元素虽然不同但同一线性表中的元素必定具有相同的特性即属于同一数据对象相邻数据元素之间存在着序偶关系 诸如此类由nn≥0个数据特性相同的元素构成的有限序列称为线性表。线性表中元素的个数 nn≥0定义为线性表的长度n0时称为空表 对于非空的线性表或线性结构其特点是
存在唯一的一个被称作第一个的数据元素存在唯一的一个被称作最后一个的数据元素除第一个数据元素之外结构中的每个数据元素均只有一个前驱除最后一个数据元素之外结构中的每个数据元素均只有一个后继
线性表的顺序存储结构
线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素这种表示也称作线性表的顺序存储结构或顺序映像。通常用顺序存储结构的线性表称为顺序表。其特点是逻辑上相邻的数据元素,其物理次序也是相邻的。
假设线性表的每个元素需占用x个存储单元并以所占的第一个单元的存储地址作为数据元素的存储起始位置。则线性表中第 i1 个数据元素的存储位置LOC(ai1)和第 i 个数据元素的存储位置LOC(ai)之间满足下列关系
LoC(ai1)LOC(ai)x
一般来说线性表的第i个数据元素 ai的存储位置为
LoC(ai)LOC(ai)(i-1)x
式中LOC(a1)是线性表的第一个数据元素a1的存储地址位置通常称作线性表的起始位置或基地址表中相邻的元素ai和ai1的存储位置是相邻的每一个数据元素的存储位置都和线性表的起始位置相差一个常数如图所示。 只要确定了存储线性表的起始位置线性表中任一数据元素都可随机存取所以线性表的顺序存储结构是一种随机存取的存储结构
线性表的插入与删除运算
插入
线性表的插入操作是指在表的第 i(1 ≤ i ≤ n十1)个位置插人一个新的数据元素e使长度为n的线性表变成长度为n1的线性表
数据元素之间的逻辑关系发生了变化。在线性表的顺序存储结构中由于逻辑上相邻的数据元素在物理位置上也是相邻的因此除非in1否则必须移动元素才能反映这个逻辑关系的变化。 如上图所示为一个线性表在插人新的数据元素前后数据元素在存储空间中的位置变化。为了在线性表的第5个位置上插人一个值为25的数据元素则需将第5个至第8个数据元素依次向后移动一个位置。长度也发生变化从原本n8变成n9。
一般情况下在第i1 ≤ i ≤ n个位置插入一个元素时需从最后一个元素即第n个元素开始依次向后移动一个位置直至第i个元素共n-i1个元素。仅当插入位置in1时才无须移动数据元素
算法步骤
判断插人位置i是否合法若不合法则返回ERROR判断顺序表的存储空间是否已满若满则返回 ERROR将第n个至第i个位置的元素依次向后移动一个位置空出第i个位置(in十1时无须移动)将要插入的新元素e放入第i个位置。表长加 1。
顺序表插入算法的平均时间复杂度为O(n)。
删除
线性表的删除操作是指将表的第i ( 1 ≤ i ≤ n)个元素删去将长度为n的线性表变成长度为n-1的线性表。数据元素之间的逻辑关系发生了变化为了在存储结构上反映这个变化同样需要移动元素。 如上图所示为了删除第4个数据元素必须将第5个至第8个元素都依次向前移动一个位置
算法步骤
判断删除位置i是否合法若不合法则返回ERROR。将第i1个至第n个的元素依次向前移动一个位置(in时无须移动)。表长减 1。 由此可见顺序表删除算法的平均时间复杂度为O(n)。