#include
#include
struct Lnode{
int data;
struct Lnode *next;
};
struct Lnode *LinkList;
struct Lnode *SearchLinkList(struct Lnode *L , int i)
{
int j=1;
int e ;
struct Lnode *p;
p=L;
if(p!=NULL&&j<i)
{
p=p->next;
j++;
}
else if(!p||j>i)
{
printf("数据出错");
return (NULL);
}
else
e=p->data;
printf("%d",e);
return (p);
}
int InsertLinkList(struct Lnode *L , int e , int i)
{
struct Lnode *p , *s;
p=SearchLinkList(L,i-1); //细品一下
if(!p) //细品一下
{
return (-1);
}
else
{
s->next=p->next;
p->next=s;
s->data = e;
}
return 0;
}
int DeleteLinkList(struct Lnode *L , int i)
{
int e ; struct Lnode *p , *s;
p = SearchLinkList(L , i-1);
s = SearchLinkList(L , i);
if(!p||!s)
{
return(-1);
}
else
{
e=s->data;
p->next=s->next;
free(s);
}
return (e);
}
struct Lnode *CreateLinkList(int *r , int n)
{
int j ; struct Lnode *L , *s ;
s = (struct Lnode*)malloc(100*sizeof(struct Lnode));
s->data = r[1];
s->next = NULL;
L = s;
for(j=2;j<=n;j++)
{
InsertLinkList(L , r[j] , j);
}
return (L);
}
int ShowLinkList(struct Lnode *L)
{
int e ;
struct Lnode *p ;
if(!L)
{
return (-1);
}
else
{
p=L;
}
while(p->next)
{
e=p->data;
printf("%d",e);
p=p->next;
}
return 0;
}
void set(int *r , int SampleNum)
{
int i;
for(i=1;i<=SampleNum;i++)
{
scanf("%d",r[i]);
}
}
int main()
{
int r[100], i , SampleNum , SearchPos , NewPos , Newitem, DelPos ;
struct Lnode *p;
scanf("%d",&SampleNum);
set(r,SampleNum);
LinkList=CreateLinkList(r , SampleNum);
ShowLinkList(LinkList);
scanf("%d",&SearchPos);
printf("%d",SearchLinkList(LinkList , SearchPos));
scanf("%d %d",&NewPos,&Newitem);
InsertLinkList(LinkList,Newitem,NewPos);
ShowLinkList(LinkList);
scanf("%d",&DelPos);
DeleteLinkList(LinkList , DelPos);
ShowLinkList(LinkList);
return 0;