数据结构中关于链表的一个简单问题
2006-03-04 18:15
435 查看
学数据结构还是上个学期的事,什么?觉得怎么样?唉,别提了,那个时候被我们那位女老师给搞晕了,上课的时候只有一个声调,照着书本上的算法在黑板解释给我们听都还不能流畅,你就可想而知我们觉得怎么样了。当然啦,这些都是客观原因,自己不认真是实质所在。一直很想再好好看看,现在又有机会听一位科大博士的数据结构课程,自然是倍感珍惜,只希望可以跟着他,把以前的知识再过一遍,我想会有新的收获。
下面就把今天这个问题讲一下吧,也许在老鸟看来是一个小儿科的问题,但是没有办法,我不是什么聪明的人,只好用笨办法,现在一边回忆一边总结。就算我记性不好,时不时的拿来看看,一来可以巩固一下知识,二来,也许会发现以前的不足。
问题1:合并两个递增的线性链表为一个递增的线性链表。
这个问题是我们的数据结构课程里,是一个常见的问题。但是以住我们会不太注意时间和空间复杂度的问题,这个学期我又选了算法这门课,一边惊叹同一个问题用不同的方法可能会带来效率的极大差别,一边也告诉自己,以后做程序不能以解决问题做为评判成绩唯一标准。而要追求,出色的完成任务。所以,这是我从这个问题考虑到的。
解决:基于比较,分别比较两个链表的元素,选出较小的加到新的链表中。
算法:
void MargeList( LinkList &La, LinkList &Lb, LinkList &Lc)
{
Pa=La->next;Pb=Lb->next;//初始化链表
Lc=Pc=La;//共用La的结点空间
while( pa&&pb ){
if( pa->data <= pb->data ){
pc->next=pa; //链到Lc头结点后
pc = pa; //pc指针移到Lc的最后一个结点
pa=pa->next; //pa指向下一个结点
}
else
{
pc->next=pb;
pc = pb;
pb = pb->next;
}
pc->next==pa?pa:pb; //剩下的结点直接插入
free(Lb);
}
(未完,我去吃饭了)
下面就把今天这个问题讲一下吧,也许在老鸟看来是一个小儿科的问题,但是没有办法,我不是什么聪明的人,只好用笨办法,现在一边回忆一边总结。就算我记性不好,时不时的拿来看看,一来可以巩固一下知识,二来,也许会发现以前的不足。
问题1:合并两个递增的线性链表为一个递增的线性链表。
这个问题是我们的数据结构课程里,是一个常见的问题。但是以住我们会不太注意时间和空间复杂度的问题,这个学期我又选了算法这门课,一边惊叹同一个问题用不同的方法可能会带来效率的极大差别,一边也告诉自己,以后做程序不能以解决问题做为评判成绩唯一标准。而要追求,出色的完成任务。所以,这是我从这个问题考虑到的。
解决:基于比较,分别比较两个链表的元素,选出较小的加到新的链表中。
算法:
void MargeList( LinkList &La, LinkList &Lb, LinkList &Lc)
{
Pa=La->next;Pb=Lb->next;//初始化链表
Lc=Pc=La;//共用La的结点空间
while( pa&&pb ){
if( pa->data <= pb->data ){
pc->next=pa; //链到Lc头结点后
pc = pa; //pc指针移到Lc的最后一个结点
pa=pa->next; //pa指向下一个结点
}
else
{
pc->next=pb;
pc = pb;
pb = pb->next;
}
pc->next==pa?pa:pb; //剩下的结点直接插入
free(Lb);
}
(未完,我去吃饭了)
相关文章推荐
- 关于fgets()函数的一个简单问题
- 问题:关于贴友的一个书本页面简单布局(html+css)的实现
- 关于链表的面试问题(判断一个单链表中是否有环)
- 数据结构之链表与数组(二) -单向链表上的简单操作问题
- 小蚂蚁学习数据结构(27)——题目——一个关于链表的题目
- 问题:关于贴友一个用js传递value默认值的简单实现
- 关于指针和const限定符问题的一个简单判断方法
- 数据结构之链表与数组(二) -单向链表上的简单操作问题
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- 关于用栈链表来实现中序表达式的一个小程序 《数据结构》
- 关于一个asp的简单聊天室的代码问题
- 关于S5PV210的启动问题和u-boot分析并自己实现一个简单的boot(一)
- 我也提一个关于递归的问题,代码简单,不绕,希望一起讨论一下~
- 一个关于HQL预编译的简单问题
- ASP.NET中一个简单的关于Session的问题的解决
- 关于一个简单的python上传到linux服务器再经过shell脚本ftp传输的问题
- 一个关于MoveWindow,ScreenToClient,ClientToScreen,GetWindowRect,GetClientRect的简单问题
- 【微信支付】分享一个失败的案例 跨域405(Method Not Allowed)问题 关于IM的一些思考与实践 基于WebSocketSharp 的IM 简单实现 【css3】旋转倒计时 【Html5】-- 塔台管制 H5情景意识 --飞机 谈谈转行
- 问题:关于贴友一个用js传递value默认值的简单实现
- 一个C++简单链表的小问题