线性表在位置 i插入

it2023-02-13  88

#include<stdio.h>

#define MAXSIZE 100

typedef struct

{

    int elem[MAXSIZE];

    int length;

} SqList;

SqList SqList_insert(SqList L,int i,int x)          //在 i 的位置插入 x

{

    if(i<1||i>L.length+1)

    printf("ERROR!");

    if (L.length>=MAXSIZE)

    printf("ERROR!!!");

    else

    {

        for (int j = L.length-1; j >= i-1;j--)

        L.elem[j + 1] = L.elem[j];

        L.elem[i - 1] = x;

        L.length++;

    }

    return L;

}

void SqList_disploy(SqList L)         //遍历表中元素

{

    for (int i = 0; i <= L.length - 1;i++)

    {

        printf("%4d", L.elem[i]);

    }

}

int main()

{

    int i,x;

    SqList L;

    printf("请输入元素的个数:\n");

    scanf("%d", &L.length);

    printf("\n请输入各个元素:\n");

    for (i = 0; i <= L.length - 1;i++)

    scanf("%d", &L.elem[i]);

    SqList_disploy(L);

    printf("\n请输入插入的位置和内容、用,隔开\n");

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

    L = SqList_insert(L, i, x);

    SqList_disploy(L);

}

最新回复(0)