顺序表

作者: Destiny_0ea2 | 来源:发表于2018-10-22 20:51 被阅读0次

    #include<stdio.h>

    #include<stdlib.h>

    #define MAXSIZE 20

    typedef int ElemType;

    typedef struct

    {

    ElemType elem[MAXSIZE];

    int last;

    }SeqList;

    void InitList(SeqList *L);

    int LenList(SeqList);

    int InsList(SeqList *L, int i, ElemType e);

    int DelList(SeqList *L, int i, ElemType *e);

    int main()

    {

    SeqList La;

    ElemType Lb;

    int i, x, n = 0;

    InitList(&La);

    printf("线性表长度\n");

    scanf_s("%d", &n);

    La.last = n;

    printf("线性表元素\n");

    for (i = 0; i < n; i++)

    scanf_s("%d", &La.elem[i]);

    printf("\n");

    printf("插入位置元素\n");  //插入

    scanf_s("%d %d", &i, &x);

    InsList(&La, i, x);

    for (i = 0; i < La.last; i++)

    printf("%d\n", La.elem[i]);

    printf("删除位置\n");  //删除

    scanf_s("%d", &i);

    DelList(&La, i, &Lb);

    printf("删除数:%d\n", Lb);

    for (i = 0; i < La.last; i++)

    printf("%d\n", La.elem[i]);

    return 0;

    }

    void InitList(SeqList *L)

    {

    L->last = 0;

    }

    int LenList(SeqList L)

    {

    return L.last;

    }

    int InsList(SeqList *L, int i, ElemType e)  //插入

    {

    int k;

    if ((i < 1) || (i > L->last + 2)) //判断位置是否存在

    {

    printf("plug-in position are not legall\n");

    return 0;

    }

    if (L->last >= MAXSIZE - 1)//判断数据是否溢出

    {

    printf("list are overflow\n");

    return 0;

    }

    else

    {

    for (k = L->last; k >= i - 1; k--)//插入操作

    L->elem[k + 1] = L->elem[k];

    L->elem[i - 1] = e;

    L->last++;

    return 0;

    }

    }

    int DelList(SeqList *L, int i, ElemType *e)//删除

    {

    int k;

    if ((i < 1) || (i > L->last + 1))  //判断位置是否存在

    {

    printf("删除位置不合法!\n");

    return 0;

    }

    else

    {

    *e = L->elem[i - 1];

    for (k = i; k <= L->last; k++)

    L->elem[k - 1] = L->elem[k];

    L->last--;

    return 1;

    }

    }

    相关文章

      网友评论

          本文标题:顺序表

          本文链接:https://www.haomeiwen.com/subject/ovrnzftx.html