链表完整版

来源:互联网 发布:iphone6屏幕解锁软件 编辑:程序博客网 时间:2024/06/05 07:31

转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents


谭浩强C程序设计


#include<cstdio>#include<malloc.h >//#define NULL 0#define LEN sizeof(struct student)struct student{int num;double score;struct student *next;};int n;struct student *creat(void){struct student *head,*p1,*p2;n = 0;p1=p2=(struct student * )malloc(LEN);scanf("%d,%lf",&p1->num,&p1->score);head = NULL;while(p1->num!=0){n+=1;if(n == 1)head = p1;elsep2->next = p1;p2 = p1;p1 = (struct student *)malloc(LEN);scanf("%d,%lf",&p1->num,&p1->score);}p2->next =NULL;return (head);}void print(struct student * head){struct student *p;printf("\nNow,These %d records are:\n",n);p = head;while(p!= NULL){printf("%d %5.2lf\n",p->num,p->score);p = p->next;}}struct student *del(struct student *head,int num){struct student *p1,*p2;if(head == NULL){printf("\nList null!\n");return head;}p1= head;while(num != p1->num && p1->next != NULL){p2 =p1;p1=p1->next;}if(num == p1->num){if(p1 == head)head = p1->next;elsep2->next = p1->next;printf("delete:%d\n",num);n-=1;}elseprintf("%d not been found!\n",num);return (head);}struct student *insert(struct student * head,struct student * stud){struct student *p0,*p1,*p2;p1 = head;p0 = stud;if(head == NULL){head = p0;p0->next=NULL;}else{while((p0->num > p1->num)&&(p1->next!=NULL)){p2 = p1;p1=p1->next;}if(p0->num <= p1->num){if(head == p1)head = p0;elsep2->next = p0;p0->next=p1;}else{p1->next = p0;p0->next=NULL;}}n+=1;return (head);}void main(){struct student *head,*stu;int del_num;printf("Input records:\n");head = creat();print(head);printf("\nInput the deleted number:");scanf("%d",&del_num);while(del_num != 0){head = del(head,del_num);print(head);printf("Input the deleted number:");scanf("%d",&del_num);}printf("\nInput the inserted record:");stu = (struct student *)malloc(LEN);scanf("%d,%lf",&stu->num,&stu->score);while(stu->num != 0 ){head = insert(head ,stu);print(head);printf("Input the insert retcord:");stu= (struct student *)malloc(LEN);scanf("%d,%lf",&stu->num,&stu->score);}}


2 0
原创粉丝点击