#include <stdio.h>
#include <stdlib.h>
#define INIT_SIZE 5
#define INCREM 3
typedef int ElemType;
/*顺序表结构*/
typedef struct Sqlist{
ElemType *slist;
int length;
int listsize;
}Sqlist;
/*初始化顺序表:创建成功返回1,不成功返回0*/
int initSq(Sqlist *L)
{
L->slist=(ElemType *)malloc(INIT_SIZE*sizeof(ElemType));
if(!L->slist) return 0;
L->length=0;
L->listsize=INIT_SIZE;
return 1;
}
/*在i位置插入元素:插入成功返回1,不成功返回0*/
int insertSq(Sqlist *L, ElemType e, int i)
{
if(i<1||i>L->length+1){
return 0;
}
if(L->length>=L->listsize){
L->slist=(ElemType *)realloc(L->slist,(L->listsize+INCREM)*sizeof(ElemType));
if(L->slist==NULL)
return 0;
L->listsize+=INCREM;
}
int j;
for(j=L->length-1;j>=i-1;j--){
L->slist[j+1]=L->slist[j];
}
L->slist[i-1]=e;
L->length++;
return 1;
}
/*输出顺序表元素*/
void printSq(Sqlist *L)
{
int i;
for(i=0;i<L->length;i++)
{
printf("%d ",L->slist[i]);
}
printf("\n");
}
int main()
{
Sqlist sq;
ElemType e;
int n;
if(initSq(&sq)){
scanf("%d",&n);
/*补充代码,实现n个元素顺序表的创建*/
int i;
for(i=0;i<n;i++){
scanf("%d",&e);
insertSq(&sq,e,i+1);
}
printSq(&sq);
}
return 0;
}
顺序表基本操作(创建、插入、输出)
最新推荐文章于 2022-10-24 17:43:59 发布