C语言数据结构_静态顺序表实例分析


创建一个静态的顺序表存放整数,大小为10,完成以下操作:

1、输入6个整数,打印出顺序表中的内容,并显示表中剩余的空间个数

2、在顺序表中的第3个位置插入元素0,打印出顺序表中的内容,并显示表中剩余的空间个数

3、再试图插入表中第11个位置整数0,程序提示超出范围

4、删除表中第6个元素,打印出顺序表中的内容,并显示表中剩余的空间个数

#include "stdio.h"
#define MaxSize 10

/*静态顺序表的各种操作*/

/** 向顺序表中插入元素 */
/** 参数Sqlist:表首地址 */
/** 参数*len:表的长度 */
/** 参数i:插入元素的位置 */
/** 参数x:待插入的元素值 */
void insertElem(int Sqlist[], int *len, int i, int x)
{
    int t;
    if(*len==MaxSize || i<1 || i>*len+1)
    {
        printf("This insert is illegal\n");
        return;
    }       //非法插入
    for(t=*len-1; t>=i-1; t--)
        Sqlist[t+1] = Sqlist[t];
    Sqlist[i-1] = x;            //插入元素
    *len=*len+1;                //表长加1
}

/** 向顺序表中删除元素  */
/** 参数Sqlist:表首地址 */
/** 参数*len:表的长度 */
/** 参数i:插入元素的位置 */
void DelElem(int Sqlist[], int *len, int i)
{
    int j;
    if(i < 1 || i > len)
    {
        printf("This insert is illegal");
        return;
    }           //非法插入
    for(j=i; j<=*len-i; j++)
        Sqlist[j-1] = Sqlist[j];        //将第i个元素之后的元素前移
    *len=*len-1;                //表长减1
}


//测试函数
main()
{
    //按照题目要求进行测试
    int Sqlist[MaxSize];        //定义一个静态顺序表
    int len;
    int i;
    for(i=0; i<6; i++)
        scanf("%d", &Sqlist[i]);        //从键盘输入6个整数
    len=6;
    for(i=0; i