原创博文,转载请注明出处

线性表是一种逻辑结构,表示元素之间一对一的相邻关系。顺序表和链表是指存储结构,两者属于不同层面的概念,因此不要将其混淆。接下来我们学习:

顺序表最主要的特点是可以进行随机存取,即通过首地址和元素序号可以在O(1)的时间内找到指定的元素。顺序表的存储密度高,每个节点只存储数据元素,但是插入和删除需要移动大量元素。

插入、删除、查找的时间复杂度为O(n)

综合应用 : 

           1、设计一个高效算法,将顺序表的所有元素逆置,要求算法的空间复杂度为O(1).

           算法思想:扫描顺序表L的前半部分元素,对于元素L.data[i](0<=i<=L.length/2),将其余后半部分对应元素L.data[L.length-i-1]进行交换。

1  void Reverse(Sqlist &L){
2         Elemtype temp;
3         for(i=0;i<L.length/2;i++){
4              temp=L.data[i];
5              L.data[i]=L.data[L.length-i-1];
6               L.data[L.length-i-1]=temp;
7         }
8  }
View Code

 

相关文章: