作者在 2010-08-14 12:37:51 发布以下内容
呵呵,我把书上的全改成这样子,自己熟悉些。测试了边界值 没问题
int getlist(linklist la,int i)
{
linklist p=la->next;int j=1;
while (p->next!=0 && j<i)
{
p=p->next;
j++;
}
if (p!=0 && j==i)
{
return p->data;
}
else
return 0;
}
int insertlist(linklist la,int i,int e)
{
linklist p=la;int j=0;
while (p->next!=0 && j<i-1)
{
p=p->next;
j++;
}
if (p!=0 && j==i-1)
{
linklist s=malloc(sizeof(lnode));
s->next=p->next;
p->next=s;
s->data=e;
return 1;
}
else
return 0;
}
int deletelist(linklist la,int i)
{
linklist p=la; int j=0;
while (p->next!=0 && j<i-1)
{
p=p->next;
j++;
}
if (p->next!=0 && j==i-1)
{
linklist q=p;
p->next=p->next->next;
free(q);
return 1;
}
else
return 0;
}
{
linklist p=la->next;int j=1;
while (p->next!=0 && j<i)
{
p=p->next;
j++;
}
if (p!=0 && j==i)
{
return p->data;
}
else
return 0;
}
int insertlist(linklist la,int i,int e)
{
linklist p=la;int j=0;
while (p->next!=0 && j<i-1)
{
p=p->next;
j++;
}
if (p!=0 && j==i-1)
{
linklist s=malloc(sizeof(lnode));
s->next=p->next;
p->next=s;
s->data=e;
return 1;
}
else
return 0;
}
int deletelist(linklist la,int i)
{
linklist p=la; int j=0;
while (p->next!=0 && j<i-1)
{
p=p->next;
j++;
}
if (p->next!=0 && j==i-1)
{
linklist q=p;
p->next=p->next->next;
free(q);
return 1;
}
else
return 0;
}