您的位置:首页 > 其它

顺序表的基本操作实现

2016-11-14 22:06 225 查看
顺序表的基本操作实现

在复习的时候顺便写写代码(基本和书上的一样)

#include<stdio.h>
#include<malloc.h>
#define OK 1
#define ERROR 0
#define Status int
#define MAXSIZE 10000
typedef int ElemType;

//对顺序表的定义
typedef struct
{
ElemType *elem;//ElemType 代表着定义顺序表的元素类型,这一定义为int
int length;//记录顺序表的长度
}SqList;

//顺序表的初始化
Status InitList(SqList &L)
{
L.elem=new ElemType[MAXSIZE];//申请空间大小为MAXSIZE,一旦申请将不能改变
if(!L.elem)
return ERROR;
L.length=0;
return OK;
}

//顺序表的取值(取出第i个元素,并把地址放在e)
Status GetElem(SqList L,int i,ElemType &e)
{
if(i<1||i>L.length)
return ERROR;
e=L.elem[i-1];
return OK;
}

//顺序表的查找
int LocateElem(SqList L,ElemType e)
{
for(int i=0;i<L.length;++i)
if(L.elem[i]==e)
return i+1;
}

//顺序表的插入(插入的位置为i,值为e)
Status ListInsert(SqList &L,int i,ElemType e)
{
if(i<1||i>L.length+1)
return ERROR;
if(L.length==MAXSIZE)
return ERROR;
for(j=L.length-1;j>=i-1;--j)
L.elem[j+1]=L.elem[j];
L.elem[i-1]=e;
++L.length;
return OK;
}

//删除(i代表删除的位置)
Status ListDelete(SqList &L,int i)
{
if(i<1||i>L.length)
return ERROR;
for(int j=i;j<=L.length-1;++j)
L.elem[j-1]=L.elem[j];
L.length--;
return OK;
}
int main()
{

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: