#include <iostream> #include <stdlib.h> using namespace std; typedef struct node* list; struct node { int Item; list next; }; void Display(list head) { list t = head; while (nullptr != t) { cout << t->Item << endl; t = t->next; } } int main(int argc, char *argv[]) { int N = atoi(argv[1]); struct node heada; list a = &heada; a->next = nullptr; list ax = a; for (int i=0; i<N; i++) { ax->next = (list)malloc(sizeof(struct node)); ax = ax->next; ax->Item = rand() % 100; ax->next = nullptr; } Display(a->next); struct node headb; list b = &headb; list bx = b; b->next = nullptr; list u; for (ax=a->next; ax != nullptr; ax = u) { u = ax->next; for (bx=b; bx->next != nullptr; bx = bx->next) { if (bx->next->Item < ax->Item) //倒序; { break; } } ax->next = bx->next; bx->next = ax; } cout << endl; Display(b->next); return 0; }