数据结构C语言

数据结构C语言
根据大话数据结构整理,让代码更易读


#include <stdio.h>

#define MAXSIZE 20

#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;

typedef int ElemType;  /* 元素类型根据实际情况而定,这里假设为int */
//线性表的顺序实现
typedef struct
{
    ElemType data[MAXSIZE];    /* 数组存储数据元素,最大值为MAXSIZE */
    int length;  /* 线性表当前长度 */
} SqList;
//获取元素,使用指针返回其值
Status GetElem(SqList L, int i, ElemType *e)
{
    if (L.length == 0 || i < 1 || i > L.length)
        {
            return ERROR;
        }
    *e = L.data[i - 1];
    return OK;
}
//插入元素
Status ListInsert(SqList *L, int i, ElemType e)
{
    int k;
    if (L->length == MAXSIZE)                       /* 顺序线性表已经满 */
        {
            return ERROR;
        }
    if (i < 1 || i >L->length + 1)    /* 当i不在范围内时 */
        {
            return ERROR;
        }
    if (i <= L->length)
        {
            for (k = L->length - 1; k >= i - 1; k--)
                {
                    L->data[k + 1] = L->data[k];
                }
        }
    L->data[i - 1] = e;
    L->length++;
    return OK;
}
/**

*/
Status ListDelete(SqList *L, int i, ElemType *e)
{
    int k;
    if (L->length == 0)                    /* 线性表为空 */
        {
            return ERROR;
        }
    if (i < 1 || i > L->length)            /* 删除位置不正确 */
        {
            return ERROR;
        }

    *e = L->data[i - 1];
    if (i < L->length)                     /* 如果删除不是最后位置 */
        {
            for (k = i; k < L->length; k++)    /* 将删除位置后继元素前移 */
                {
                    L->data[k - 1] = L->data[k];
                }
        }
    L->length--;
    return OK;
}
/**
测试代码
*/
int main(void)
{
    SqList l;
    SqList *p;
    p=&l;
    int u=ListInsert (p,1,8);
    printf("xxxxxxx%d\n",u);
    int c;

    ListInsert(p,2,9);

    GetElem(l,1,&c);
    printf("%d\n",c);


    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值