#include "stdio.h"
#include "stdlib.h"
#define MaxSize 100
typedef struct sqlist{
int data[MaxSize];
int length;
}SqList;
void CreateList(SqList *p,int data[],int n);
int ListInsert(SqList *p,int i ,int e);
void ShowList(SqList *p,int n);
void main(){
SqList*L;
int data[6]={34,178,2,88,76,10},n,j;
//顺序表初始化
L=(SqList *)malloc(sizeof(SqList));
if(!L)
printf("内存分配失败");
else
L->length=0;
CreateList(L,data,6);
ShowList(L,6);
// 插入元素
printf("请输入插入值的位置和数值(逗号分隔):");
scanf("%d,%d",&j,&n);
n=ListInsert(L,j,n);
if(n==-1)
printf("插入位置有问题!\n");
else
ShowList(L,n);
//删除元素
printf("请输入删除的位置:");
scanf("%d",&j);
n=ListDelete(L,j);
if(n==-1)
printf("删除失败!\n");
else
printf("删除的元素为:%d\n",n);
ShowList(L,L->length);
//释放空间
free(L);
}
//创建
void CreateList(SqList *p,int data[],int n){
int i;
for(i=0;i<n;i++)
p->data[i]=data[i];
p->length=n;
}
//插入
int ListInsert(SqList *p,int i ,int e){
int j;
if(i<1|| i>p->length+1)
return -1;
i--;//形象i是逻辑位序
for(j=p->length ; j>i ; j--)
p->data[j]=p->data[j-1];
p->data[i]=e;
p->length++;
return p->length;
}
//显示
void ShowList(SqList *p,int n){
int j;
for(j=0;j<n;j++)
printf("%d",p->data[j]);
printf("\t顺序表长度为:%d\n",p->length);
}
//删除
int ListDelete(SqList *L,int i){
int k;int x;
if(L->length==0)
{
printf("此表为空表,无法删除!");
return -1;
}
else if(i<i || i>L->length)
{
printf("删除的位置有误!");
return -1;
}
else{
x=L->data[i-1];
for(k=i;k<L->length;k++)
L->data[k-1]=L->data[k];
L->length--;
return x;
}
}