合并两个排序的链表
来源:互联网 发布:网络问诊 编辑:程序博客网 时间:2024/06/04 08:42
#include<iostream>using namespace std;struct MyNode{ int data; MyNode *next;};struct MyList{ MyNode *head;};void CreatMyList(MyList *ml,int n){ if (NULL == ml ) { return; } ml->head = new MyNode; MyNode *temp = ml->head; for (int i=n; i<n+10; i=i+2) { MyNode *mn = new MyNode; mn->data = i; mn->next = NULL; temp->next = mn; temp = temp->next; }}void DisplayMyList( const MyList * ml){ if (NULL == ml||NULL == ml->head) { return; } MyNode *temp = ml->head->next; while(NULL != temp) { cout<<temp->data<<" "; temp = temp->next; } cout<<endl;}MyNode * ReMergeNode(MyNode *mn1, MyNode *mn2){ if (NULL == mn1) { return mn2; } if (NULL == mn2) { return mn1; } MyNode *temp; if (mn1->data <= mn2->data) { temp = mn1; temp->next = ReMergeNode(mn1->next,mn2); }else { temp = mn2; temp->next = ReMergeNode(mn1,mn2->next); } return temp;}MyList * ReMergeList(MyList *ml1, MyList *ml2){ if (NULL == ml1 || NULL == ml1->head || NULL == ml1->head->next) { return ml2; } if (NULL == ml2 || NULL == ml2->head || NULL == ml2->head->next) { return ml1; } if (NULL != ml1->head->next && NULL != ml2->head->next) { ml1->head->next = ReMergeNode(ml1->head->next,ml2->head->next); return ml1; }}void main(void){ MyList *ml1 = new MyList; MyList *ml2 = new MyList; CreatMyList(ml1,0); CreatMyList(ml2,10); //ml1 = NULL; //ml2 = NULL; DisplayMyList(ml1); DisplayMyList(ml2); ml1 = ReMergeList(ml1,ml2); DisplayMyList(ml1); ml1 = MerList(ml1,ml2); DisplayMyList(ml1); getchar();}
0 0
- 两个已排序链表的合并
- 两个已排序链表的合并
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序了的链表
- 合并两个排序的链表
- 23.合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- 合并两个排序的链表
- jQuery上传文件控件Uploadify使用
- 关于在stuts2使用json(commons-lang.jar夹包问题)
- 查找排序应用问题实现
- Servlet学习笔记(Servlet生命周期&开发Servlet的方法)
- ios常见加密解密方法
- 合并两个排序的链表
- 在java代码中获取JVM参数
- APP开发实战74-广播发送及广播类型
- Android Looper源码解析
- 二维数组根据某个字段排序
- python requests模拟登陆github
- maven入门配置
- C++互斥锁与条件变量的封装使用
- Sql 之 case函数