请修改append函数,利用这个函数实现
2014-07-19 01:18
351 查看
.请修改append函数,利用这个函数实现(链表):
两个非降序链表的并集,1->2->3 和 2->3->5 并为 1->2->3->5
另外只能输出结果,不能修改两个链表的数据。
//coder:LEE
//20120307
#include<iostream>
#include<cassert>
using namespace std;
struct List
{
int data;
List *next;
};
void Init(List *&p,int starti)
{
List *pCur;
for (int i=starti;i<starti+3;i++)
{
List *pNext=new List();
pNext->data=i;
pNext->next=NULL;
if(i==starti)
{
p=pNext;
pCur=p;
}
else
{
pCur->next=pNext;
pCur=pNext;
}
}
}
void Print(List *p)
{
while(p)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
void Append(List *pHead1,List *pHead2)
{
assert(pHead1);
assert(pHead2);
while(pHead1&&pHead2)
{
int value1=pHead1->data;
int value2=pHead2->data;
if (value1<value2)
{
cout<<value1<<" ";
pHead1=pHead1->next;
}
else if (value1>value2)
{
cout<<value2<<" ";
pHead2=pHead2->next;
}
else
{
cout<<value1<<" ";
pHead1=pHead1->next;
pHead2=pHead2->next;
}
}
while(pHead1)
{
cout<<pHead1->data<<" ";
pHead1=pHead1->next;
}
while(pHead2)
{
cout<<pHead2->data<<" ";
pHead2=pHead2->next;
}
}
int main()
{
List *head1;
Init(head1,1);
List *head2;
Init(head2,2);
Print(head1);
Print(head2);
Append(head1,head2);
return 0;
}
阿里巴巴:
已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。使用非递归方法以及递归方法
。answer:
http://blog.sina.com.cn/s/blog_690d24710100tx6g.html
两个非降序链表的并集,1->2->3 和 2->3->5 并为 1->2->3->5
另外只能输出结果,不能修改两个链表的数据。
//coder:LEE
//20120307
#include<iostream>
#include<cassert>
using namespace std;
struct List
{
int data;
List *next;
};
void Init(List *&p,int starti)
{
List *pCur;
for (int i=starti;i<starti+3;i++)
{
List *pNext=new List();
pNext->data=i;
pNext->next=NULL;
if(i==starti)
{
p=pNext;
pCur=p;
}
else
{
pCur->next=pNext;
pCur=pNext;
}
}
}
void Print(List *p)
{
while(p)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
}
void Append(List *pHead1,List *pHead2)
{
assert(pHead1);
assert(pHead2);
while(pHead1&&pHead2)
{
int value1=pHead1->data;
int value2=pHead2->data;
if (value1<value2)
{
cout<<value1<<" ";
pHead1=pHead1->next;
}
else if (value1>value2)
{
cout<<value2<<" ";
pHead2=pHead2->next;
}
else
{
cout<<value1<<" ";
pHead1=pHead1->next;
pHead2=pHead2->next;
}
}
while(pHead1)
{
cout<<pHead1->data<<" ";
pHead1=pHead1->next;
}
while(pHead2)
{
cout<<pHead2->data<<" ";
pHead2=pHead2->next;
}
}
int main()
{
List *head1;
Init(head1,1);
List *head2;
Init(head2,2);
Print(head1);
Print(head2);
Append(head1,head2);
return 0;
}
阿里巴巴:
已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。使用非递归方法以及递归方法
。answer:
http://blog.sina.com.cn/s/blog_690d24710100tx6g.html
相关文章推荐
- 请修改append函数,利用这个函数实现
- 42.请修改append函数,利用这个函数实现(链表):
- 请修改append 函数,利用这个函数实现:两个非降序链表的并集,1->2->3 和2->3->5 并为1->2->3->5 另外只能输出结果,不能修改两个链表的数据。
- 36. 微软面试题:请修改append函数, 利用函数实现(链表)
- 【编程题目】请修改 append 函数,利用这个函数实现两个非降序链表的并集
- 利用ini_set()函数实现对php配置文件的修改
- 利用非运行时函数实现float to char
- 利用Java反射机制实现程序运行期函数定位
- 利用webgrid实现数据的批处理(添加和修改)
- 利用Dataview实现搜索指定目录下的所有文件,以指定的条件排序(可以按文件名升降序,最后修改时间升降序)
- 利用内存读写函数和自定义消息实现进程间通信
- 如何实现利用类成员函数创建线程
- (VB.net) 利用DataGrid实现查找, 编辑, 修改, 更新, 删除的功能。
- SQL Server 2005: 利用新的ranking函数实现高效的数据分页操作
- asp下利用fso实现文件夹或文件移动改名等操作函数
- asp下利用fso实现文件夹或文件移动改名等操作函数
- 利用函数实现的oracle行列转换
- Delphi中利用钩子实现QQ聊天窗口的修改
- 利用KERNEL32 API函数实现的通用延时函数DELAY
- 利用SqlServer2005的新增函数实现更高效的分页存储过程