一、思維導圖
二、
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;
}