完成尾删函数:
int listDeleteTail(Linklist*L)
{
if(NULL == L || listEmpty(L))
{
printf("尾删失败\n");
return -1;
}
Linklist *p = L;
Linklist *q = NULL;
while(p->next != NULL)
{
q = p;
p = p->next;
}
q->next=NULL;
free(p);
p = NULL;
L->len--;
printf("尾删除成功\n");
return 0;
}
完成按位置修改函数:
int listUpdatePos(Linklist *L,int pos,datatype e)
{
if(NULL == L || pos < 0 || pos > L->len)
{
printf("修改失败\n");
}
Linklist *p=L;
for(int i = 0;i < pos;i++)
{
p = p->next;
}
p->data = e;
printf("%d位置的成功修改为%c\n",pos,e);
}
完成按值修改:
int listUpdateValue(Linklist *L,datatype old_e,datatype new_e)
{
if(NULL == L || listEmpty)
{
}
Linklist *p = L->next;
for(int i = 1;i > L->len;i++)
{
if(p->data == old_e)
{
p->data = new_e;
}
p = p->next;
}
printf("修改成功\n");
}
完成链表反转:
void listReverse(Linklist*L)
{
if(NULL == L || listEmpty(L))
{
printf("反转失败\n");
return;
}
Linklist *p1 = L->next;
Linklist *p2 = L->next->next;
Linklist *p3 = NULL;
while(p2 != NULL)
{
p3 = p2->next;
p2->next = p1;
p1 = p2;
p2 = p3;
}
L->next->next = NULL;
L->next = p1;
}