数据结构第二章复习之--------顺序表

线性表可以用顺序表实现,也可用链表实现。
顺序表的特点:1、逻辑上相邻的数据元素,其物理次序也是相邻的。
2、线性表的顺序存储结构是一种随机存取的存储结构
------------------------------顺序表的存储结构--------------------------------

#define MAXSIZE 100
#define OVERFLOW -2
#define OK 1
#define ERROR  0
typedef int Status ;
typedef struct
{
    int *elem;
    int length;
}SqList ;

#elem可以任何是自定义的数据类型。

--------------------------------顺序表的基本操作--------------------------------
1、初始化

C++ 实现:
Status InitList (SqList &L)
{
     L.elem = new int [MAXSIZE];
     if(!L.elem) exit (OVERFLOW );
     L.Length=0;
     return OK ;
}

2、取值

Status GetElem (SqList L,int i,Elem )
{
   if(i<1||i>L.Length ) return ERROR;
   e=L.elem [i];
   return OK;
}

3、查找

int Locate(SqList L,int elem)
{
    for(int i=0; i<L.length; i++)
    {
        if(L.elem[i]==elem)
        {
            return i+1;
        }
    }
}

4、插入

Status ListInsert(SqList &L,int i,Elem e)
{
    if(i>=1&&i<=L.length+1; i++)
    {
        for(int j=L.length-1; j>=i-1; j--)
        {
            L.elem[j+1]=L.elem[j];
        }
        L.elem[i-1]=e;
        ++L.length;
        return OK;
    }
    else
        return ERROR;
}

5、删除

Status Listdelete(SqList &L ,int i)
{
    if(i>=1&&i<=L.length)
    {
        for(int j=i;j<=L.length-1;j++)
        {
           L.elem[i-1]=L.elem[i];
        }
         --L.length;
         return OK;
    }
    else
    {
       return ERROR;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HNGS04290724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值