链表完整版
来源:互联网 发布: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
- 链表完整版
- 完整版
- 双向循环链表C++实现(完整版)
- 【数据结构】 链表的19种基本操作(完整版)
- 食物相克对照表完整版
- 单项链表(完整版)
- 食物相克对照表完整版[150例]
- mysql 创建表 最标准最完整版
- 顺序表的简单实现--完整版
- 区块链的跨链技术介绍完整版
- 【线性表项目2 - “顺序表”算法库终极完整版】
- ecshop二次开发:ecshop库表结构完整版(一)
- C语言常用转义字符表 和 ASCII码表完整版
- C语言常用转义字符表 和 ASCII码表完整版
- ECSHOP二次开发必备手册【ECSHOP数据库表结构完整版】
- C语言常用转义字符表 和 ASCII码表完整版
- C语言常用转义字符表 和 ASCII码表完整版
- C语言常用转义字符表 和 ASCII码表完整版
- 对话:在敏捷中,是否可以仍然用需求来替代用户故事?
- windows基础
- spring AOP使用
- 《Linux Device Drivers》 第九章 与硬件通信
- XPATH Injection
- 链表完整版
- [Network]数据链路层
- 《Linux Device Drivers》第十章 中断处理——note
- Spring AOP 面向切面编程
- Prim算法
- 《Linux Device Drivers》第十一章 内核的数据类型——note
- LInux CLI Commands
- linux 下如何打开core dump文件开关
- linux下安装ORACLE :无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了 DISPLAY 变量。 未通过