我还是个新手,链表尤其头疼,自己写出这个题解而且一遍过我真的太开心了
注意事项:
理清思路,一步一步来
参考代码:
#include<stdio.h> #include <malloc.h> typedef struct Node{ int num; int score; struct Node *next; }LNode,*Llist; Llist Initlist(int n); //初始化链表 Llist Copylist(LNode * heada,LNode * headb,int n,int m); //将两个链表合并(将b的头节点复制到a的尾节点后面) Llist Sortlist(LNode * heada,int n); //冒泡排序,实现学号的从小到大排列 void Output(LNode * heada,int n); //输出 int main(){ int n,m; scanf("%d %d",&n,&m); LNode * heada = (LNode *)malloc(sizeof(LNode)); //链表a的头节点 LNode * headb = (LNode *)malloc(sizeof(LNode)); //链表b的头节点 heada = Initlist(n); headb = Initlist(m); Copylist(heada,headb,n,m); Sortlist(heada,n+m); Output(heada,n+m); return 0; } Llist Initlist(int n){ LNode * p = (Llist)malloc(sizeof(LNode)); p->next = NULL; LNode * head = p; for(int i = 0;i<n;i++){ LNode * tmp = (LNode *)malloc(sizeof(LNode)); tmp->next = NULL; scanf("%d %d",&tmp->num,&tmp->score); p->next = tmp; p = tmp; } return head; } Llist Copylist(LNode * heada,LNode * headb,int n,int m){ LNode * p = heada; int i = 0; while(i<n){ //不断把tmp指针后移到链表a的尾节点,然后将a的尾节点tmp指向b的头节点的next节点 i++; p = p->next; } p->next = headb->next; return heada; } Llist Sortlist(LNode * heada,int n){ //冒泡排序 LNode * tmp = (LNode *)malloc(sizeof(LNode)); for(int i = 0;i<n-1;i++){ LNode * p = heada->next; for(int j = 0;j <n-i-1;j++){ if(p->num>p->next->num){ //p和p的下一个节点的学号进行比较,如果p的学号大,交换数据 tmp->num = p->next->num; tmp->score = p->next->score; p->next->num = p->num; p->next->score = p->score; p->num = tmp->num; p->score = tmp->score; } p = p->next; //p节点后移 } } free(tmp); return heada; } void Output(LNode * heada,int n){ LNode * tmp = (LNode *)malloc(sizeof(LNode)); for(int i = 0;i <n;i++){ tmp = heada->next; //tmp和head同步后移 printf("%d %d\n",tmp->num,tmp->score); heada = tmp; } free(tmp); }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:822 |
P1002 (C语言代码)浏览:1019 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:585 |
printf基础练习2 (C语言代码)浏览:547 |
格式化数据输出 (C语言代码)浏览:882 |
简单的事情 (C语言代码)浏览:679 |
母牛的故事 (C语言代码)浏览:625 |
筛排处理 (C语言代码)浏览:830 |
DNA (Java代码)浏览:971 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:596 |