#include<iostream> #include<iomanip> using namespace std; struct student {int num,score; student *p; }; student *creatlink(void) { student *head,*p; head=new student; p=head; while(1) {cin>>(*p).num>>(*p).score; if((*p).num==0&&(*p).score==0) {delete (*p).p;(*p).p=NULL; return head;} (*p).p=new student; p=p->p; (*p).p=NULL; } } student *dellink(student *head,long a) {student *p,*h; h=p=head; if((*p).num==a) {head=(*p).p; delete p; ////////////////////////// return head;} while(1) { if((*p).num==a) {h->p=p->p;delete p;return head;} h=p; p=(*p).p; } return head;} student *insertlink(student *head,student *a) {student *p,*h; h=head; p=new student ; p->num=a->num; p->score=a->score; p->score=NULL; if(p->num<head->num) {head=p; p->p=h;return head;} while(1) {if(h->num<p->num) { p->p=h->p; h->p=p;return head;} h=h->p; } } void printlink(student *head) { while(head!=NULL) { cout<<head->num<<‘ ‘<<head->score<<endl; head=head->p; } } void freelink(student *head) { student *p; while(head!=NULL) { p=head->p; delete head; head=p; } } int main() { student *creatlink(void); student *dellink(student *,long); student *insertlink(student *,student *); void printlink(student *); void freelink(student *); student *head,stu; long del_num; head=creatlink(); cin>>del_num; head=dellink(head,del_num); cin>>stu.num>>stu.score; head=insertlink(head,&stu); cin>>stu.num>>stu.score; head=insertlink(head,&stu); cout<<setiosflags(ios::fixed); cout<<setprecision(2); printlink(head); freelink(head); return 0; }
C语言习题 链表建立,插入,删除,输出,布布扣,bubuko.com
原文:http://blog.csdn.net/rememberautumn/article/details/21945203