本文共 1960 字,大约阅读时间需要 6 分钟。
创建
node *head,*p,*s; int x,cycle=1; head=new node; //建立头节点 p=head; while(cycle) { scanf("%d",&x); if(x!=0) { s=new node;;//每次新建一个节点 s->data=x; p->next=s; p=s; } else { cycle=0; } } p->next=NULL;
删除
student *t,*q,*u ; q = head->next; if(q->data==2)//如果目标是头的话 { head ->next= q->next; } else { while(q) { u = q; q = q->next; if(q->data == 2) { u->next = u->next->next; break; } } }
头结点删除的两种方法
1. head = head->next;2. head->next = head->next->next;插入
头插
student *t,*q,*u ; q = head->next; if(q->data==2) { student *r = new student; r->data = 5; r->next = head->next; head->next = r; } else { while(q) { u = q; q = q->next; if(q->data == 2) { student *r = new student; r->data = 5; r->next = q; u->next = r; break; } } }尾插
student *t,*q,*u ; q = head->next; while(q) { if(q->data == 2) { student *r = new student; r->data = 5; r->next = q->next; q->next = r; break; } q = q->next; }
链表的逆置(改变指针的指向 a->b->c a<-b<-c)
student *t,*q,*w,*p1,*p2,*p3; //head = NULL; p1 = head->next; p2 = p1->next; while(p2) { p3 = p2->next; p2->next = p1; p1 = p2; p2 = p3; } head->next->next= NULL; t = p1;
转载地址:http://absgi.baihongyu.com/