#include<stdio.h>
typedef int ElemType;
#define MAXSIZE 1000
#define FALSE 0
#define TRUE 1
typedef struct
{
ElemType data[MAXSIZE];
int length;
}SeqList;
SeqList L;
void SeqListInit(SeqList L)//链表初始化
{
//SeqList L;
L.length=0;
//return L;
}
SeqList ListClear(SeqList L)//线性表清零
{
L.length=0;
return L;
}
int Listlength(SeqList L)//测线性表长度
{
return L.length;
}
int ListEmpty(SeqList L)//判空
{
if(L.length)
return 1;
else
return 0;
}
int ListFull(SeqList L)//线性表判满
{
if(L.length ==MAXSIZE)
return TRUE;
else
return FALSE;
}
void PrintfList(SeqList L)//输出线性表
{
int i;
for(i=1;i<L.length;i++)
printf("%d ",L.data[i]);
printf("%d\n",L.data[i]);
}
ElemType ListGet(SeqList L,ElemType n)//取指定元素
{
return L.data[n];
}
ElemType ListFindSame(SeqList L,ElemType n)//找相同元素
{
int i;
for(i=1;i<=L.length;i++)
if(n==L.data[i])
return i;
return i;
}
void ListInsert(SeqList L,int i,ElemType n)//插入元素到指定位置
{
int j;
if(i==L.length+1)
L.data[L.length+1]=n;
else
for(j=L.length+1;j>i;j--)
{
L.data[j]=L.data[j-1];
L.data[i]=n;
}
L.length++;
}
void ListDele(SeqList L,int i)//删除指定位置元素
{
int j;
for(j=i;j<L.length;j++)
L.data[j]=L.data[j+1];
L.length--;
}
void main()
{
ElemType i,n,l;
SeqListInit(L);
printf("请输入线性表长度:\n");
scanf("%d",&L.length);
printf("请输入线性表元素:\n");
for(i=1;i<=L.length;i++)
scanf("%d",&L.data[i]);
printf("1 删除指定位置元素\n2 插入元素到指定位置\n");
scanf("%d",&n);
if(n==1)
{
printf("请输入须删除元素的位置:");
scanf("%d",&l);
ListDele(L,l);
L.length--;
}
else
{
printf("请输入需要插入的元素和位置:");
scanf("%d %d",&i,&l);
ListInsert(L,l,i);
L.length++;
}
PrintfList(L);
}