结构体节点:
typedef struct student { int num; //学号 int score; //分数 char name[20]; struct student *next;//指针域 }STU;
demo:
1、 void link_delete_num(STU **p_head,int num) { STU * pb,*pf; pb=*p_head;//让pb指向头节点 if(*p_head == NULL)//链表为空链表 { printf("链表为空\n"); return ; } while(pb->num !=num && pb->next!=NULL)//循环查找要删除的节点 { pf=pb; pb=pb->next; } if(pb->num == num)//找到了一个节点的num和num相等 { if(pb == *p_head)//找到的节点是头节点 { *p_head = pb->next; } else//找到的节点是普通节点 { pf->next = pb->next; } free(pb); } else//没有找到咱们要删除的节点 { printf("没有找到您要删除的节点\n"); } } 2、 void link_delete_name(STU **p_head,char *name) { STU * pb,*pf; pb=*p_head;//让pb指向头节点 if(*p_head == NULL)//链表为空链表 { printf("链表为空\n"); return ; } while(strcmp(pb->name,name)!=0 && pb->next!=NULL)//循环查找要删除的节点 { pf=pb; pb=pb->next; } if(strcmp(pb->name,name)==0)//找到了一个节点的num和num相等 { if(pb == *p_head)//找到的节点是头节点 { *p_head = pb->next; } else//找到的节点是普通节点 { pf->next = pb->next; } free(pb); } else//没有找到咱们要删除的节点 { printf("没有找到您要删除的节点\n"); } } ———————————————— 版权声明:本文为CSDN博主「Eliasfp」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/peng_apple/article/details/79614518
原文:https://www.cnblogs.com/XueQun/p/15122758.html