顺序表是用一组地址连续的存储单元依次存储数据元素的数据结构。顺序表是线性表的一种,线性表是最常用且最简单的一种数据结构,一个线性表是 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;
}
------不比别人聪明,就比别人更加努力------