为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

[专题]c语言 建立 输出 插入 删除 修改功能的单项动态链表

2018-02-22 10页 doc 24KB 17阅读

用户头像

is_482581

暂无简介

举报
[专题]c语言 建立 输出 插入 删除 修改功能的单项动态链表[专题]c语言 建立 输出 插入 删除 修改功能的单项动态链表 C语言链表类题目 写函数一个有三名学生数据的, 有建立 输出 插入 删除 修改功能的单项动态链表,很全 面,各种测试都试过了,环境VC6.0 结构体为学号 成绩 #include #include #include struct Student { long num; float score; struct Student* next; struct Student *pre; }; int n=0; struct Student* cr...
[专题]c语言 建立 输出 插入 删除 修改功能的单项动态链表
[专题]c语言 建立 输出 插入 删除 修改功能的单项动态链表 C语言链表类题目 写函数一个有三名学生数据的, 有建立 输出 插入 删除 修改功能的单项动态链表,很全 面,各种测试都试过了,环境VC6.0 结构体为学号 成绩 #include #include #include struct Student { long 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; } else { pre = 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("%ld\t%.3f\n",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; } else { return 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; } else { p2->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; } else { p->next = head; head = p; return head; } } if (num < head->num) { p->next = head; head = p; return head; } p1=head->next; while (p1!=NULL) { if (num >= p2->num) { if (num <= p1->num) { p->next = p1; ->next = p; p2 } else { if (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("\n\n\n"); printf("以下为输出结果:\n\n"); print(head); printf("\n"); printf("共有节点%d个\n",n); printf("\n"); printf("下面开始删除节点\n"); printf("请输入要删除的节点号码: "); scanf("%ld",&num_del); head = del(head,num_del); printf("以下为输出结果:\n\n"); 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("以下为输出结果:\n\n"); print(head); printf("\n"); printf("共有节点%d个\n",n+1); printf("下面开始修改节点\n"); printf("请输入要修改的节点号码和要改成的得分: "); scanf("%ld %f",&num_alter,&score_alter); head = alter(head,num_alter,score_alter); printf("以下为输出结果:\n\n"); print(head); printf("\n"); printf("共有节点%d个\n",n+1); printf("\n"); printf("\n"); return 0;
/
本文档为【[专题]c语言 建立 输出 插入 删除 修改功能的单项动态链表】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索