#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR -1
#define MAX_SIZE 100
typedef int Status;
typedef int ElemType;
typedef struct sqlist
{
ElemType Elem_array[MAX_SIZE];
int length;
}Sqlist;
//插入运算
Status InsertElem(Sqlist *L,int i,ElemType e)
{
int j;
if(i<0||i>L->length + 1)
return ERROR;
if(L->length>MAX_SIZE)
{
printf("线性表溢出!\n");
}
for(j = L->length-1;j>=i-1;j--)
{
L->Elem_array[j+1] = L->Elem_array[j];
}
L->Elem_array[i-1] = e;
L->length++;
return OK;
}
void PrintList(Sqlist *L)
{
int i;
for(i = 0;i<L->length;i++)
{
printf("%d\n",L->Elem_array[i]);
}
}
void main()
{
Sqlist l;
l.length = 0;
//int l->Elem_array[MAX_SIZE];
InsertElem(&l,1,2);
InsertElem(&l,2,2);
InsertElem(&l,3,2);
PrintList(&l);
}
如果想直接创建一个线性表,程序如下:
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR -1
#define MAX_SIZE 100
typedef int Status;
typedef int ElemType;
typedef struct sqlist
{
ElemType Elem_array[MAX_SIZE];
int length;
}Sqlist;
//插入运算
Status InsertElem(Sqlist *L,int i,ElemType e)
{
int j;
if(i<0||i>L->length + 1)
return ERROR;
if(L->length>MAX_SIZE)
{
printf("线性表溢出!\n");
}
for(j = L->length-1;j>=i-1;j--)
{
L->Elem_array[j+1] = L->Elem_array[j];
}
L->Elem_array[i-1] = e;
L->length++;
return OK;
}
void PrintList(Sqlist *L)
{
int i;
for(i = 0;i<L->length;i++)
{
printf("%d\n",L->Elem_array[i]);
}
}
Status CreatList(Sqlist *L)
{
int len;
int i;
//ElemType q;
printf("请输入想要创建表的长度:");
scanf("%d",&len);
if(len<0||len>MAX_SIZE)
return ERROR;
L->length = len;
for(i = 0;i<len;i++)
{
scanf("%d",&L->Elem_array[i]);
}
}
void main()
{
Sqlist l;
l.length = 0;
//int l->Elem_array[MAX_SIZE];
//InsertElem(&l,1,2);
//InsertElem(&l,2,2);
//InsertElem(&l,3,2);
CreatList(&l);
printf("线性表的值如下:\n");
PrintList(&l);
InsertElem(&l,3,2);
printf("插入数值后的线性表如下:\n");
PrintList(&l);
}