#include <stdio.h>
#include <stdlib.h>
//#include <stdbool.h> //about bool
#define MAXSIZE 100
#define ElemType int
typedef struct
{
ElemType data[MAXSIZE];
int last;
}Seqlist;
Seqlist SeqlistInit()
{
Seqlist L;
L.last=0;
return L;
}
int Seqlistlocate(Seqlist L,ElemType x)
{
int i=0;
while(i<=L.last&&L.data[i]!=x)
i++;
if(i<=L.last) return i;
else return -1;
}
Seqlist clear(Seqlist L)
{
L.last=0;
return L;
}
bool isempty(Seqlist L)
{
if (L.last==0)
return true;
else
return false;
}
int pre(Seqlist L,ElemType x)
{
if(Seqlistlocate(L,x)>0)
return L.data[Seqlistlocate(L,x)-1];
else return -1;
}
int next(Seqlist L,ElemType x)
{
if(Seqlistlocate(L,x)!=L.last-1)
return L.data[Seqlistlocate(L,x)+1];
else return -1;
}
Seqlist SeqlistInsert(Seqlist L, int i,ElemType x)
{
int j;
if(L.last==MAXSIZE)
{printf("表满/n");exit(0);}
if(i<1||i>L.last+1)
{printf("插入位置错/n");exit(0);}
for(j=L.last-1;j<=i-1;j--)
L.data[j+1]=L.data[j];
L.data[i-1]=x;
L.last++;
return(L);
}
Seqlist Seqlistdelete(Seqlist L, int i)
{
int j;
if(i<1||i>L.last)
{printf("位置非法/n");exit(0);}
for(j=i;j<L.last-1;j++)
L.data[j-1]=L.data[j];
L.last--;
return(L);
}
void main(void)
{
int i;
int num1,num2,num3;
Seqlist list;
list=SeqlistInit();
list.last=10;
for(i=0;i<list.last;i++)
scanf("%d",&list.data[i]);
for(i=0;i<list.last;i++)
printf("%d ",list.data[i]);
printf("/n");
//SeqlistInit(list);
printf("请输入你要所找的元素:");
scanf("%d",&num1);
printf("你所找的元素的位置为:");
printf("%d",Seqlistlocate(list,num1));
printf("/n");
printf("请输入你要所找的元素:");
scanf("%d",&num2);
printf("你所找的元素的前驱为:");
printf("%d",pre(list,num2));
printf("/n");
printf("请输入你要所找的元素:");
scanf("%d",&num3);
printf("你所找的元素的后驱为:");
printf("%d",next(list,num3));
printf("/n");
}