1.实现单链表的任意位置修改
主函数内代码:
//任意位置修改
printf("enter update_pos:");
scanf("%d",&pos);
printf("enter update_pos ele:");
scanf("%d",&ele);
L=update_pos(pos,ele,L);
Output(L);
被调函数内代码:
//计算长度
int len_link(Linklist L)
{ int count=0;
while(L!=NULL)
{ L=L->next;
count++;}
return count;
}
//任意位置修改
Linklist update_pos(int pos,datatype ele,Linklist L)
{ int len=len_link(L);
if(L==NULL || pos<1 || pos>len)
{ puts("update_pos error");
return L;}
Linklist p=L;
for(int i=1;i<pos;i++)
p=p->next;
p->data=ele;
return L;
}
2.单链表的任意位置查找
主函数代码:
//任意位置查找
printf("enter search_pos:");
scanf("%d",&pos);
search_pos(pos,L);
被调函数代码:
//计算长度
int len_link(Linklist L)
{ int count=0;
while(L!=NULL)
{ L=L->next;
count++;}
return count;
}
//任意位置查找
int search_pos(int pos,Linklist L)
{ int len=len_link(L);
if(L==NULL || pos<1 || pos>len)
{ puts("search_pos error");
return -1;}
Linklist p=L;
for(int i=1;i<pos;i++)
p=p->next;
printf("查找到的值为:%d\n",p->data);
return 0;
}
3.思维导图