解题思路:
注意事项:
参考代码:
#include<stdio.h> #include<stdlib.h> typedef struct node { int xh,score; struct node *next; }Node,*LinkList; void Initnode(LinkList *L) { *L=(LinkList)malloc(sizeof(Node)); (*L)->xh=NULL; (*L)->score=NULL; (*L)->next=NULL; } void created(LinkList *L,int n) { Node *r,*s; r=(*L); while(n--) { (s)=(LinkList)malloc(sizeof(Node)); scanf("%d%d",&(s->xh),&(s->score)); r->next=s; r=s; } r->next=NULL; } Node* changed(Node* L1,Node* L2) { Node *r; r=L1; while(r->next!=NULL) { r=r->next; } r->next=L2->next; return L1; } void print(Node *L1,int n,int m) { int a[n+m],e,l,p; p=n+m; l=0; Node *r,*r1; r=L1->next; for(int i=0;i<n+m;i++) { a[i]=r->xh; r=r->next; } for(int j=0;j<n+m;j++) { for(int k=j;k<n+m;k++) { if(a[j]>a[k]) { e=a[j]; a[j]=a[k]; a[k]=e; } } } r1=L1->next; while(p) { if(r1->xh==a[l]) { printf("%d %d\n",r1->xh,r1->score); p--; l++; r1=L1; } r1=r1->next; } } int main() { int n,m; LinkList L1,L2; Initnode(&L1); Initnode(&L2); scanf("%d%d",&n,&m); created(&L1,n); created(&L2,m); L1=changed(L1,L2); print(L1,n,m); free(L1); free(L2); return 0; }
0.0分
1 人评分