解题思路:先创单链表,然后本题考查的就是单链表的增删改查基本操作,最后多了排序,我们先将信息存进去,然后合并,再排序,最后输出;
注意事项:一定要抽象清晰,基础扎实
参考代码:
#include<iostream> #include<stdlib.h> using namespace std; typedef struct Node{ int student_id; int student_grade; struct Node* next; }student; student* fListCreate(){ student *p = (student*)malloc(sizeof(student)); if(p == NULL) return NULL; p->next = NULL; return p; } void fListTraverse(student *head){ student *tra; for(tra = head -> next; tra != NULL; tra = tra -> next){ cout << tra -> student_id << ' ' << tra -> student_grade << endl; } } void fListIncrease(student *ptr, int student_id, int student_grade){ student *inc = (student *)malloc(sizeof(student)); student *tra; inc -> student_id = student_id; inc -> student_grade = student_grade; for(tra = ptr; tra -> next != NULL; tra = tra -> next){ } tra -> next = inc; inc -> next = NULL; } void fListBubbleSort(student *head){ student *tra, *temp; for(tra = head; tra -> next != NULL; tra = tra -> next){ for(temp = tra -> next; temp != NULL; temp = temp -> next){ if(tra -> student_id > temp -> student_id){ int id = tra -> student_id; int grade = tra -> student_grade; tra -> student_id = temp -> student_id; tra -> student_grade = temp -> student_grade; temp -> student_id = id; temp -> student_grade = grade; } } } } int main() { int N,M; int id, grade; student *a; student *b; a = fListCreate(); b = fListCreate(); cin >> N >> M; for(int i = 0; i < N; i++){ cin >> id >> grade; fListIncrease(a, id, grade); } for(int i = 0; i < M; i++){ cin >> id >> grade; fListIncrease(b, id, grade); } for(student *tra = b -> next; tra != NULL; tra = tra -> next) { id = tra -> student_id; grade = tra -> student_grade; fListIncrease(a, id, grade); } fListBubbleSort(a); fListTraverse(a); free(a); free(b); return 0; }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:1215 |
矩阵转置 (C语言代码)浏览:1539 |
C语言程序设计教程(第三版)课后习题8.1 (Java代码)浏览:785 |
高精度加法 (C++代码)(大数加法)浏览:944 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:471 |
C语言程序设计教程(第三版)课后习题9.2 (Java代码)浏览:642 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:721 |
C语言训练-阶乘和数* (C语言代码)-------- 呆板写法浏览:1376 |
C语言训练-求PI* (C语言代码)浏览:616 |
WU-复数求和 (C++代码)浏览:2030 |