欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据结构之顺序表的插入和删除

程序员文章站 2022-03-22 19:55:52
...

静态建表

#define MaxSize 50
typedef int Elemtype
typedef struct{
    ElemType data[MaxSize];  //顺序表的元素(数组)
    int length;              //顺序表当前长度
}SqList;                     //顺序表的定义类型

动态建表

typedef int Elemtype;
typedef struct{
    ElemType *data;  //指示动态分配数组的指针
    int MaxSize,length;
}SeqList;

动态分配语句(c语言)

#indefine InitSize 100
SeqList L;
L.data=(ElemType*)malloc(sizeof(ElemType)*InitSize);
//malloc 函数的作用:分配存储空间 sizeof是取后面ElemType的大小

插入:

#define MaxSize 100

typedef struct{
    int data[MaxSize];
    int length;
}SqList;

bool ListInsert(SqList &L,int i,int e){//插入位置是i,插入元素是e
    if(i<1||i>L.length+1)  //位置存在不合理
        return false;
    if(L.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;
}

删除:

#define MaxSize 100

typedef struct{
    int data[MaxSize];
    int length;
}SqList;

bool ListDelete(SqList &L,int i,int &e){
    if(i<1||i>L.length+1)  //位置存在不合理
        return false;
    e=L.data[i-1];
    for(int j=1;j<L.length;j++)
        L.data[j-1]=L.data[j];
    L.length--;
    return true;
}

 

相关标签: 数据结构