#include"link.h"
int get_head()
{
Plink p=malloc(sizeof(link));
if(p==NULL)
{
printf("申请头结点失败\n");
return NULL;
}
p->len=0;
p->next=NULL;
return p;
}
int head_insert(Plink L,int e)
{
if(L==NULL)
{
printf("单链表不存在\n");
return -1;
}
plink p=malloc(sizeof(link));
p->data=xx;
p->next=L->next;
L->next=p;
L->len++;
}
int node_output(Plink L)
{
if(L==NULL||L->len==0)
{
printf("单链表不存在或为空\n");
return -1;
}
int i;
Plink t=L;
for(i=0;i<L->len;i++)
{
t=t->next;
printf("%d\t",t->data);
}
}
int any_insert(Plink L,int e,int pos)
{
if(L==NULL||L->len==0)
{
printf("插入失败\n");
return -1;
}
int i;
Plink t=L;
for(i=0;i<pos-1;i++)
{
t=t->next;
}
Plink p=malloc(sizeof(link));
p-data=e;
p-next=t-next;
t->next=p;
L->len++;
}
int dele_any_pos(Plink L,int pos)
{
if(L==NULL||L->len==0)
{
printf("单链表不存在或为空\n");
return -1;
}
int i;
Plink t=L;
for(i=0;i<pos-1;i++)
{
t=t->next;
}
Plink Q=t->next;
t->next=t->next->next;
L->len--;
free(Q);
Q=NULL;
return 0;
}
int node_reverse(Plink L)
{
if(L==NULL||L->len==0)
{
printf("单链表不存在或为空\n");
return -1;
}
Plink Q=L->next->next;
Plink t=L->next;
while(Q!=NULL)
{
t->next=Q->next;
Q->next=L->next;
L-next=Q;
Q=t->next;
}
printf("链表逆置成功\n");
return 0;
}