408数据结构源代码线性表顺序表

408数据结构

Linear 线性表

Sequence 顺序表

一、Static_allocation.cpp静态分配

1.定义结构体

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

2.初始化顺序表

void InitList(SqList &L){
    L.data[0]=1;
    L.data[1]=1;
    L.data[2]=1;
    L.data[3]=1;
    L.data[4]=1;
    L.length=5;
}

3.插入元素

bool  ListInsert(SqList &L,int i,int 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;
}

4.删除元素

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

3.获得相应位置元素

int GetElem(SqList L,int i){
    return L.data[i-1];
}

二、Dynamic_allocation.cpp动态分配

1.定义结构体

typedef struct {
    int *data;
    int Maxsize;
    int length;
}SeqList;

2.初始化顺序表

void InitList(SeqList &L){
    L.data=(int*) malloc(InitSize*sizeof(int));
    L.length=0;
    L.Maxsize=InitSize;
}

3.增加顺序表长度

void IncreaseSize(SeqList &L,int len){
    int *p=L.data;
    L.data=(int*) malloc((L.length+len)*sizeof(int));
    for (int i = 0; i < L.length; i++) {
        L.data[i]=p[i];
    }
    L.Maxsize=L.Maxsize+len;
    free(p);
}

4.获取相应节点元素

int GetElem(SeqList L,int i){
    return  L.data[i-1];
}

5.按值查找

int LocateElem(SeqList L,int e){
    for (int i = 0; i < L.length; i++) {
        if(L.data[i]==e)
            return i+1;
    }
    return 0;
}

三、源代码见github:Sequence 顺序表:https://github.com/3190704121/Sequence

代码是使用CLion编写,有需要可以跳转github获取

posted @   粥粥alg  阅读(271)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示