#include "stdio.h"
#include "malloc.h"
#define Maxsize 50
typedef int datatype;
typedef struct
{
datatype data[Maxsize];
int length;
}LinkList;
LinkList *InitList()
{
LinkList *S;
S=(LinkList *)malloc(sizeof(LinkList));
printf("初使化顺序表!/n");
if(!S)
{
printf("空间不足");
return NULL;
}else
{
S->length=0;
return S;
}
}
LinkList *createList(LinkList *L)
{
int n,i;
char tmp;
printf("请输入数据的个数:/n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("data[%d]=",i);
fflush(stdin);
scanf("%d",&tmp);
L->data[i]=tmp;
L->length++;
}
//L->length=n-1;
return L;
printf("/n");
}
void DisplayList(LinkList *s)
{
int i;
if(s->length==0){
printf("这是一个空表");
}else{
for(i=0;i<s->length;i++)
{
printf("data[%d]=",i);
printf("%d",s->data[i]);
printf("/n");
}
}
}
LinkList *ListInsert(LinkList *L,datatype data,int i)
{
int j;
if(L->length==Maxsize-1)
{
printf("顺序表以达最大!不可再插入!");
return 0;
}
else if((i<0)||(i>L->length-1))
{
printf("插入的位置不对,请重新输入!");
return 0;
}
else
{
for(j=L->length;j>=i;j--)
{
L->data[j+1]=L->data[j];
}
L->data[i]=data;
L->length=L->length+1;
}
return L;
}
LinkList *ListDel(LinkList *L,int p)
{
int j;
if(p<0||p>L->length-1)
{
printf("所要删除的位置不对,请重新选择位置!");
}
else
{
for(j=p;j<=L->length-1;j++)
{
L->data[j]=L->data[j+1];
}
//L->data[i]=data;
L->length=L->length-1;
}
return L;
}
int main(){
int num,point;
LinkList *p;
p=InitList();
createList(p);
printf("输出这个顺序表的值:/n");
DisplayList(p);
printf("/n");
printf("请输入要插的数据!");
scanf("%d",&num);
printf("请输入要插的位置!");
scanf("%d",&point);
ListInsert(p,num,point);
printf("输出插入一个数据后,这个顺序表的值:/n");
DisplayList(p);
printf("/n");
printf("请选择你所要删除数据的位置!");
scanf("%d",&point);
ListDel(p,point);
printf("输出插入一个数据后,这个顺序表的值:/n");
DisplayList(p);
printf("/n");
}