C语言创建顺序表并插入元素 详细注释

顺序表是用一组地址连续的存储单元依次存储数据元素的数据结构。顺序表是线性表的一种,线性表是最常用且最简单的一种数据结构,一个线性表是 n 个数据元素的有限序列。我们使用 c 语言来创建顺序表并插入元素。

IDE : Code::Blocks 17.12

Compiler : GNU GCC Compiler

/*创建顺序表并插入元素*/
#include <stdio.h>
#include <stdlib.h>
#define Listsize 100  //顺序表可容纳最大值

//声明顺序表
typedef struct sqlist{
    int data[Listsize];  //存储顺序表中的元素
    int length;  //顺序表中含有的元素个数
};

//在顺序表中插入元素
void InsertList(struct sqlist * list,int t,int i){  //插入位置为i,插入值为t
    int j;
    if(i<0 || i>list->length){  //插入位置不合法
        printf("位置错误!");
        exit(1);
    }
    if(list->length>=Listsize){  //超出顺序表范围,溢出
        printf("溢出");
        exit(1);
    }
    for(j=list->length-1;j>=i;--j){  //腾出位置i以供插入数据t
        list->data[j+1]=list->data[j];
    }
    list->data[i]=t;  //在位置i插入数据t
    list->length++;  //顺序表长度加1
}

int main()
{
    struct sqlist * sq;  //创建顺序表sq
    int i,n,t;
    sq=(struct sqlist *)malloc(sizeof(struct sqlist));  //分配空间
    sq->length=0;  //初始化顺序表长度为0
    printf("输入顺序表的大小:");
    scanf("%d",&n);
    printf("请输入顺序表的元素:\n");  //在顺序表中插入n个元素
    for(i=0;i<n;++i){
        scanf("%d",&t);
        InsertList(sq,t,i);  //插入位置为i,值为t
    }
    printf("这个链表现在是:\n");
    for(i=0;i<sq->length;++i){  //输出顺序表的内容
        printf("%d ",sq->data[i]);
    }
    return 0;
}


------不比别人聪明,就比别人更加努力------

猜你喜欢

转载自blog.csdn.net/Ibelievesunshine/article/details/80040988