免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: GAORJ
打印 上一主题 下一主题

如何实现一个单链表的反转?  关闭 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-11-01 17:28 |显示全部楼层

如何实现一个单链表的反转?

>;>;没看懂。
其实和冒泡排序的原理很像,就是一个个的移动结点到相应的位置,移动完一个再移动下一个,直到逆转完成。

论坛徽章:
0
12 [报告]
发表于 2004-11-01 17:36 |显示全部楼层

如何实现一个单链表的反转?

>;>;依我的理解,老师就是不想让学生用倒腾指针的方式实现。
也许老师是想考察学生对栈的理解吧,就我而言,一开始想到的就是怎么操作指针--这是从语言角度想到的,如果能想到从栈操作的角度去解决就是从数据结构和算法的角度去考虑的,这样说来,这个题目是个不错的题目。这个问题讨论到这里应该差不多了。

论坛徽章:
0
13 [报告]
发表于 2004-11-03 14:18 |显示全部楼层

如何实现一个单链表的反转?

>;>;你既然这么精通C语言,还问别人p;是什么意思?
给你解释了,你又认为是p!=0 ;你既然这么清楚你还问别人干屁?
偶不像是白痴吧?

够了,到此为止吧,流川你先回去看看书再来和FH理论。

>;>;p; 相当于p !=NULL;
你把这个“p;”的准确含义搞清楚先吧。

FH也别趟这趟混水了,目前这个问题也说不出其它的办法了。

论坛徽章:
0
14 [报告]
发表于 2004-11-03 14:41 |显示全部楼层

如何实现一个单链表的反转?

>;>;只是有人不明白,要我解释。
不知道是谁不明白?
你去看看:
http://bbs.chinaunix.net/forum/viewtopic.php?t=404711&show_type=new

我也打住不趟这趟混水了。

论坛徽章:
0
15 [报告]
发表于 2004-11-05 11:20 |显示全部楼层

如何实现一个单链表的反转?

yunin  兄的思路不错,但是考虑数据结构问题的时候应该是首先从数学角度出发考虑算法的设计,然后才是从语言,cpu,编译器角度出发考虑优化,对于一个学习数据结构的学生,首先应该是从数学角度考虑问题锻炼思维,你这个算法等于完全不顾及链表的特性了,你说呢?

论坛徽章:
0
16 [报告]
发表于 2004-11-10 13:45 |显示全部楼层

如何实现一个单链表的反转?

越来越偏了吧?汇编都用上了,数据结构的学习要求学生掌握的是什么?其实楼主不用辅助结点的条件本身就有待商榷.如果我是老师,学生交上来一个用汇编写的代码即便是效率很高但是算法和数据结构的选择有问题,我照样不会给高分的,甚至可能不给他及格。

论坛徽章:
0
17 [报告]
发表于 2004-11-11 10:55 |显示全部楼层

如何实现一个单链表的反转?

不是,我没有说你的程序写的不好,其实我之前并没有看过,不好评论,我只是觉得似乎考虑这个问题的思路越来越偏,不要忘了楼主刚开始学习数据结构,正常情况下,老师给出的任何一个有关数据结构的题目都是要考察学生对基本的数据结构和算法的理解,不会出一个非得要汇编才能解决的问题,所以我担心往这个方向考虑会让楼主在刚开始学习数据结构的时候就走错方向--考虑一个问题的时候,首先不是从数学角度考虑怎么设计和选择数据结构和算法的,而是首先从机器角度考虑的。我上面说的“如果我是老师”等等之类的话也不是我要做别人的老师,事实上我也不够格,只是我从作为教授数据结构老师的角度出发考虑的希望学生从数据结构的学习里应该学到的是什么。
    当然,你上面提到了你的工作用到了这里的东东,这是我没有考虑到的,这么看来的话我倒是蛮佩服你的钻研精神的,这个问题我目前也想不到其他别的什么办法了,我指的是数学上的,所以也给不出别的好办法来了。
    以上文字是对我的相应言论进行解释的,如果有过激的地方我道歉,还请大家原谅!
    最后,就事论事吧,我看了看yunin的代码,我知道我们之间最大的分歧在哪里了,可能你做底层的程序多了吧,汇编玩的熟了,所以考虑一个问题的时候首先从机器角度出发的;我反之,我首先是从数学角度出发看看这个问题应该如何选择和设计数据结构和算法,然后再从机器的角度出发考虑程序的优化,因为我觉得机器在变,解决问题的思路不会有太大的变化。
    难得有个有点意思的问题大家一起讨论,我想yunin,FH等人都做到了足够的心平气和了,事实上有分歧才会产生火花,思想的碰撞才能互相进步,继续保持对这个问题的关注!

论坛徽章:
0
18 [报告]
发表于 2004-11-11 12:17 |显示全部楼层

如何实现一个单链表的反转?

再多说一点看法吧,欢迎拍砖,使用交换结点内的数据达到交换的目的还有一个最大的弊病,就是问题的规模一旦扩大了就很麻烦,想想看如果结点内存放了很多的数据的时候到底是改变指针指向来的简单还是交换数据来的简单?

论坛徽章:
0
19 [报告]
发表于 2004-11-11 14:52 |显示全部楼层

如何实现一个单链表的反转?

我不懂C++ 兄又回来了哈,你的那个论坛和主页都不错的,支持一下先。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP