数据结构重点知识点复习——第二章 线性表(顺序表)

目录

一、线性表

二、基本概念

2.1顺序表的插入

思路

         代码

         复杂度

2.2顺序表的删除

         思路

         代码

         复杂度

         查找


一、线性表

数据结构重点知识点复习——第二章 线性表(顺序表)_第1张图片

二、基本概念

        线性表的顺序存储又称为顺序表。 它是用一组地址连续的存储单元(比如C语言里面的数组),依次存储线性表中的数据元素,从而使得逻辑上相邻的两个元素在物理位置上也相邻。

        建立顺序表的三个属性: (静态分配) 1.存储空间的起始位置(数组名data) 2.顺序表最大存储容量(MaxSize) 3.顺序表当前的长度(length,初始长度L.length=0)

#define MaxSize 50
typedef int Elemtype  //元素类型int
typedef struct {
    Elemtype data[MaxSize];   //数组
    int length;           //长度
}SqList;

(动态分配) 其实数组还可以动态分配空间,存储数组的空间是在程序执行过程中通过动态存储分配语句分配

#define initsize 100
SeqList L;
L.data=(Elemtype*)malloc(sizeof(Elemtype)*initsize);

数据结构重点知识点复习——第二章 线性表(顺序表)_第2张图片

2.1顺序表的插入

思路

数据结构重点知识点复习——第二章 线性表(顺序表)_第3张图片

代码

bool Listinsert(SqList &L,int i,Elemtype){
    if(i<1||i>L.length+1) //范围限度
        return false;
    if(length>=Maxsize)  //数值判断
        return false;
    for(int j=L.length;j>=i;j--)  //移项
        L.data[j]=L.data[j-1];
    L.data[i-1]=e;   //赋值
    L.length++;   //长度
    return true;
}

复杂度

数据结构重点知识点复习——第二章 线性表(顺序表)_第4张图片

2.2顺序表的删除

思路

数据结构重点知识点复习——第二章 线性表(顺序表)_第5张图片

代码

bool ListDelete(SqList &L,int i,Elemtype &e){
    if(i<1||i>L.length)
        return false; //注意和上边的不一样
    e=L.data[i-1];   //将被删除的元素赋值给e
    for(int j=i;j

复杂度

数据结构重点知识点复习——第二章 线性表(顺序表)_第6张图片

查找

数据结构重点知识点复习——第二章 线性表(顺序表)_第7张图片

你可能感兴趣的:(数据结构重点总结,数据结构,算法,c语言)