SDUT_2119 数据结构实验之链表四:有序链表的归并
生活随笔
收集整理的這篇文章主要介紹了
SDUT_2119 数据结构实验之链表四:有序链表的归并
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點擊打開鏈接
數據結構實驗之鏈表四:有序鏈表的歸并
Time Limit:?1000MS?Memory Limit:?65536KB Submit?Statistic?DiscussProblem Description
分別輸入兩個有序的整數序列(分別包含M和N個數據),建立兩個有序的單鏈表,將這兩個有序單鏈表合并成為一個大的有序單鏈表,并依次輸出合并后的單鏈表數據。Input
第一行輸入M與N的值;?第二行依次輸入M個有序的整數;
第三行依次輸入N個有序的整數。
Output
輸出合并后的單鏈表所包含的M+N個有序的整數。Example Input
6 5 1 23 26 45 66 99 14 21 28 50 100Example Output
1 14 21 23 26 28 45 50 66 99 100Hint
不得使用數組!Author
#include <iostream> using namespace std; struct node {int num;node *next; }; struct node *creat(int n) {node *head,*tail,*p;head=new node;head->next=NULL;tail=head;for(int i=0;i<n;i++){p=new node;cin>>p->num;p->next=NULL;tail->next=p;tail=p;}return head; } struct node *merge(struct node *head1,struct node *head2) {node *p1,*p2,*tail;p1=head1->next;p2=head2->next;tail=head1;//free(head2);while(p1&&p2)if(p1->num<p2->num){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;return head1; } struct node *display(struct node *head) {while(head!=NULL){if(head->next!=NULL)cout<<head->num<<' ';elsecout<<head->num<<endl;head=head->next;}return 0; } int main() {struct node *head1,*head2;int m,n;cin>>m>>n;head1=creat(m);head2=creat(n);head1=merge(head1,head2);display(head1->next);return 0; }/*************************************************** User name: YT1658506207邵雪源 Result: Accepted Take time: 0ms Take Memory: 264KB Submit time: 2017-07-31 20:25:25 ****************************************************/總結
以上是生活随笔為你收集整理的SDUT_2119 数据结构实验之链表四:有序链表的归并的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SDUT_2118 数据结构实验之链表三
- 下一篇: 第3周实践项目3 求集合并集