栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数据结构-线性表

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构-线性表

顺序存储

#define MAXSIZE 100 //存储空间的初始存储量
#define ERROR 0
#define OK 1

typedef int Status; //用来表示状态码
typedef int ElemType; //ElemType 的类型根据情况而定




//顺序存储


//动态分配的结构
typedef struct {
    ElemType *data; //动态分配数组指针,指向的是顺序表的第一个位置
    int length; // 线性表的当前长度,每一次添加新元素,线性表长度就加一
}SqList;//线性表表的名字


//初始化线性表
Status InitSqList(SqList &L){ //&这是c++的写法,&L相当于将线性表传了进去,会改变线性表的内容
    L.data = (ElemType*)malloc(sizeof(ElemType)*MAXSIZE);//给线性表分配空间,一块连续的空间
    if(!L.data)return ERROR;
    L.length = 0;
    return OK;
}

//销毁线性表
void DestroyList(SqList &L){
    free(L.data);//释放线性表的空间
    L.data = NULL; //结点指向为NULL
    L.length = 0; //长度置零
}

//清空线性表
void ClearList(SqList &L){
    L.length = 0; //长度置零
}

//求线性表的长度
int GetLength(SqList L){ //不用改变L内部的值,所以不用加&传递
    return L.length;
}

//判断线性表是否为空
Status IsEmpty(SqList L){
    if(L.length==0)return OK;
    return ERROR;
}

//取值操作
Status GetElem(SqList L,int i,ElemType &e){
    if(i<1 || i>L.length)return ERROR;
    e = L.data[i-1];
    return OK;
}

//查找操作(在线性表中查找值为e的元素)
Status LocateElem(SqList L,ElemType e){
    for(int i=0;i
        if(L.data[i]==e)return OK;
    }
    return ERROR;

}

//插入操作(在插入操作的时候,会移动若干个位置)

Status ListInsert(SqList &L,int i,ElemType e){
    if(i<1 || i>L.length+1)return ERROR; //插入的位置越界就报错
    if(L.length==MAXSIZE)return ERROR;//当前存储空间满,就报错
    for(int j=L.length;j>=i;j--){//移动元素
        L.data[j] = L.data[j-1];
    }
    L.data[i-1] = e;//插入元素
    L.length++; //表长加一
    return OK;
}

//删除操作
Status ListDelete(SqList &L, int i){ //删除指定位置
    if(i<1 || i>L.length)return ERROR;//因为下标从0开始,所以第length个位置是没元素的,所以删不来
    if(L.length==0)return ERROR;//表长为空,报错
    for(int j=i-1;j
       L.data[j] = L.data[j+1]; 
    }
    L.length--;
    return OK;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031834.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号