顺序表中基本操作的实现

//函数结果状态代码

#define OK 1

#define ERROR 0

#define OVERFLOW -2

//Status 是函数返回值类型,其值是函数结果状态代码

typedef int Status;

 

算法2.1 构造顺序表的存储结构

typedef struct

{

ElemType *elem;   //指针,把地址分配给指向ElemType的指针p

int length;

}SqList      //这个ElemType 可以先用一个结构体定义一下。structured query结构化查询

算法2.2 顺序表的初始化

Status InitList(SqList &L)
{//构造一个空的顺序表L
L.elem=new ElemType[MAXSIZE];
if(!L.elem) exit(OVERFLOW);
L.length=0;
return Ok;
}

算法2.3 顺序表的取值:
算法2.3 顺序表的取值:
Status GetElem(SqList L,int i,ElemType &e)
{
    if(i<1||i>L.length) return ERROR;
    E=l.elem[i-1];
    return Ok;
}
 
 算法2.4 顺序表的查找:
 int LocateElem(SqList L,ElemType e)
 {//在顺序表L中查找值为e的数据元素,返回其序号
    for(i=0;i<L.length;i++)
    if(L.elem[i]==e) return i+1;
    return 0;
 }
 
算法2.5 顺序表的插入
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;
}
 
算法2.6 顺序表的删除
Status ListDelete(SqList &L,int i)
{
    if((i<1)||(i>L.length)) return ERROR;
    for(j=i;j<=L.length-1;j++)
    L.elem[j-1]=L.elem[j];
    --L.length;
    return OK;
}
 

 

 

版权声明:
作者:maple
链接:https://www.maplezeroz.com/?p=250
来源:我的学习笔记
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
顺序表中基本操作的实现
//函数结果状态代码 #define OK 1 #define ERROR 0 #define OVERFLOW -2 //Status 是函数返回值类型,其值是函数结果状态代码 typedef int Status;   算……
<<上一篇
下一篇>>