#include#include typedef struct Person{ char *id; char *name; struct Person *next; }Node; int main(void) { Node *p1,*p2,*p3,*head,*p; p1 = (Node*)malloc(sizeof(Node)); p2 = (Node*)malloc(sizeof(Node)); p3 = (Node*)malloc(sizeof(Node)); p1->id="191100153";p1->name="king"; p2->id="191100152";p2->name="mei"; p3->id="191100151";p3->name="gege"; head=p1; p1->next=p2; p2->next=p3; p3->next=NULL; p = head; while(p!=NULL){ printf("%s,%sn",p->id,p->name); p=p->next; } return 0; }
执行结果如下:
增加节点
技巧:使用p指针指向要插入位置的前一个节点处,x->next=p->next,让x的下一个结点指向p指针的下一个位置,最后让p->next=x;
Node *x=(Node*)malloc(sizeof(Node));
x->id="5201314";x->name="kiki";
p = p2;
x->next=p->next;
p->next=x;
#include#include typedef struct Person{ char *id; char *name; struct Person *next; }Node; int main(void) { Node *p1,*p2,*p3,*head,*p; p1 = (Node*)malloc(sizeof(Node)); p2 = (Node*)malloc(sizeof(Node)); p3 = (Node*)malloc(sizeof(Node)); p1->id="191100153";p1->name="king"; p2->id="191100152";p2->name="mei"; p3->id="191100151";p3->name="gege"; head=p1; p1->next=p2; p2->next=p3; p3=NULL; //新增节点 Node *x=(Node*)malloc(sizeof(Node)); x->id="5201314";x->name="kiki"; p = p2; x->next=p->next; p->next=x; p = head; while(p!=NULL){ printf("%s,%sn",p->id,p->name); p=p->next; } return 0; }
执行结果如下:
删除结点
//删除节点
Node *q;
p = p2;
q = p->next;
p->next = q->next;
free(q);
#include#include typedef struct Person{ char *id; char *name; struct Person *next; }Node; int main(void) { Node *p1,*p2,*p3,*head,*p; p1 = (Node*)malloc(sizeof(Node)); p2 = (Node*)malloc(sizeof(Node)); p3 = (Node*)malloc(sizeof(Node)); p1->id="191100153";p1->name="king"; p2->id="191100152";p2->name="mei"; p3->id="191100151";p3->name="gege"; head=p1; p1->next=p2; p2->next=p3; p3=NULL; //新增节点 Node *x=(Node*)malloc(sizeof(Node)); x->id="5201314";x->name="kiki"; p = p2; x->next=p->next; p->next=x; //删除节点 Node *q; p = p2; q = p->next; p->next = q->next; free(q); p = head; while(p!=NULL){ printf("%s,%sn",p->id,p->name); p=p->next; } return 0; }
执行结果如下:
kiki给删除了



