C语言建立输出插入删除修改功能的单项动态链表.doc_第1页
C语言建立输出插入删除修改功能的单项动态链表.doc_第2页
C语言建立输出插入删除修改功能的单项动态链表.doc_第3页
C语言建立输出插入删除修改功能的单项动态链表.doc_第4页
C语言建立输出插入删除修改功能的单项动态链表.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言链表类题目写函数一个有三名学生数据的, 有建立 输出 插入 删除 修改功能的单项动态链表,很全面,各种测试都试过了,环境VC6.0结构体为学号 成绩#include #include #include struct Studentlong num;float score;struct Student* next;struct Student *pre;int n=0;struct Student* create(void)struct Student *head;struct Student *tail;struct Student *pre;struct Student *p;head = NULL;pre = NULL;p=(struct Student*)malloc(sizeof(struct Student);printf(请输入用户名和得分:n);scanf(%ld %f,&p-num,&p-score);if (0 = p-num)return NULL;while(0 != p-num)n+;if (NULL = head)head=p;tail=p;pre = NULL;tail-next = NULL; elsepre = tail;tail-next=p;tail=p;p=(struct Student*)malloc(sizeof(struct Student);printf(请输入用户名和得分:n);scanf(%ld%f,&p-num,&p-score);if (NULL != pre)tail-next=NULL;return head;void print(struct Student *head)struct Student *p=head;if (NULL = p)printf(该链表中还没有数据n);while (p !=NULL)printf(%ldt%.3fn,p-num,p-score);p=p-next;struct Student *del(struct Student *head, long num)struct Student *p1 = head;struct Student *p2 = head;if (NULL = head)return NULL;if (NULL = head-next)if (num = head-num)n-;return NULL; elsereturn head;if (num = head-num)n-;head=head-next;return head;if (NULL = head-next-next)if (num = head-next-num)n-;head-next = NULL;return head;p1 = head-next;while (p1!=NULL)if (num = p1-num)n-;if (NULL = p1-next)p2-next = NULL; elsep2-next = p1-next;p1 = p1-next;p2 = p2-next;return head;struct Student *alter(struct Student *head, long num, float score)struct Student *p = head;while (p!=NULL)if (num = p-num)p-score = score;p = p-next;return head;struct Student *insert(struct Student *head, long num, float score)struct Student *p1=head;struct Student *p2=head;struct Student *p;p=(struct Student*)malloc(sizeof(struct Student);p-num = num;p-score = score;if (NULL = head)head = p;head-next = NULL;return head;if (NULL = head-next)if (num = head-num)head-next = p;p-next =NULL;return head; elsep-next = head;head = p;return head;if (num num)p-next = head;head = p;return head;p1=head-next;while (p1!=NULL)if (num = p2-num)if (num num)p-next = p1;p2-next = p; elseif (NULL = p1-next)p1-next = p;p-next = NULL;p1 = p1-next;p2 = p2-next;return head;int main()struct Student *head = create();long num_del;long num_insert;float score_insert;long num_alter;float score_alter;printf(nnn);printf(以下为输出结果:nn);print(head);printf(n);printf(共有节点%d个n,n);printf(n);printf(下面开始删除节点n);printf(请输入要删除的节点号码: );scanf(%ld,&num_del);head = del(head,num_del);printf(以下为输出结果:nn);print(head);printf(n);printf(共有节点%d个n,n);printf(下面开始插入节点n);printf(请输入要插入的节点号码和得分: );scanf(%ld %f,&num_insert,&score_insert);head = insert(head,num_insert,score_insert);printf(以下为输出结果:nn);print(head);printf(n);printf(共有节点%d个n,n+1);printf(下面开始修改节点n);printf(请输入要修改的节点号码和要改成的得分: );scanf(%ld %f,&num_alter,&scor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论