一、思维导图
二、
1】按值修改
2】按值查找,返回当前节点的地址 (先不考虑重复,如果有重复,返回第一个)
3】反转
4】销毁链表
//按值修改
int value_change(linklistptr H,datatype e,int value)
{if(H==NULL||empty(H)){printf("修改失败\n");return 0;}linklistptr p=H;for(int i=0;i<H->len;i++){p=p->next;if(p->data==e)p->data=value;}return 1;
}
//按值查找
linklistptr value_find(linklistptr H,datatype e)
{if(H==NULL||empty(H)){printf("查找失败\n");return 0;}linklistptr p=H;int flag=0;for(int i=0;i<H->len;i++){p=p->next;if(p->data==e){flag=1;return p;}}if(flag==0)printf("查无此数据\n");
}
//链表逆置
int inversion(linklistptr H)
{if(H==NULL||empty(H)){printf("逆置失败\n");return 0;}linklistptr p=H->next->next;H->next->next=NULL;linklistptr q;while(p!=NULL){q=p->next;p->next=H->next;H->next=p;p=q;}
}
//销毁链表
void free_link(linklistptr *H)
{if(*H==NULL){printf("销毁失败\n");return;}free(*H);*H=NULL;
}