日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构实验之链表四:有序链表的归并

發布時間:2025/3/21 编程问答 10 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构实验之链表四:有序链表的归并 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description
分別輸入兩個有序的整數序列(分別包含M和N個數據),建立兩個有序的單鏈表,將這兩個有序單鏈表合并成為一個大的有序單鏈表,并依次輸出合并后的單鏈表數據。
Input
第一行輸入M與N的值;
第二行依次輸入M個有序的整數;
第三行依次輸入N個有序的整數。
Output
輸出合并后的單鏈表所包含的M+N個有序的整數。
Sample
Input
6 5
1 23 26 45 66 99
14 21 28 50 100
Output
1 14 21 23 26 28 45 50 66 99 100
Hint
不得使用數組!

#include<bits/stdc++.h>using namespace std;typedef struct node {int data;struct node *next; } List;List *creator(int n) {List *head, *tail, *p;head = new List;head->next = NULL;tail = head;for(int i = 0; i < n; i++){p = new List;scanf("%d", &p->data);p->next = NULL;tail->next = p;tail = p;}return head; } void List_merge(List *head1, List *head2) {List *p1, *p2, *tail;p1 = head1->next;p2 = head2->next;tail = head1;free(head2);while(p1 && p2){if(p1->data < p2->data){tail->next = p1;tail = p1;p1 = p1->next;}else{tail->next = p2;tail = p2;p2 = p2->next;}}if(p1)tail->next = p1;elsetail->next = p2; }void display(List *head) {List *p;p = head->next;while(p){printf("%d%c", p->data, p->next ? ' ': '\n');p = p->next;} } int main() {int n, m;scanf("%d%d", &m, &n);List *head1, *head2;head1 = creator(m);head2 = creator(n);List_merge(head1, head2);display(head1);return 0; }

總結

以上是生活随笔為你收集整理的数据结构实验之链表四:有序链表的归并的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。