C语言创建线性顺序表

 

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100

typedef struct 
{
    int *elem;
    int length;
}SqList;

int InitList(SqList *L)
{
    L->elem=(int*)malloc(sizeof(int)*MAXSIZE);
    if(!L->elem){return 0;}
    L->length=0;
    return 1;
}

int GetElem(SqList L,int i,int *e)  //判断指定位置i的值是否合理
{
    if(i<1||i>L.length) {return 0;}
    *e=L.elem[i-1];
    return *e;
}

int LocateElem(SqList L,int e)   //查找值为e的数据元素,返回其序号
{
    int i;
    for(i=0;i<L.length;i++){
        if(L.elem[i]==e)return i+1;
    }
    return 0;
}

int ListInsert(SqList *L,int i,int e)
{

    if(i<1||i>L->length+1) return 0;
    if(L->length==MAXSIZE) return 0;
    for (int j=L->length-1;j>=i-1;j--)
    {
        L->elem[j+1]=L->elem[j];
        
    }
    L->elem[i-1]=e;
    return 1;
}

int main(){
    SqList Line;
    InitList(&Line);
    Line.elem[3]=6;
    Line.length=8;
    int a=0;
    printf("search%d",GetElem(Line,4,&a));
    printf("insert%d",ListInsert(&Line,5,6));
    return 0;

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值