免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
81 [报告]
发表于 2004-11-11 11:51 |只看该作者

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

讨论这个问题,其实没有什么实际价值,对于数据结构,应该遵循标准的做法去处理,而不是花心思去考虑一些小技巧,我宁愿牺牲空间和效率去追求系统的可靠性和好的可维护性!
考虑用堆栈去解这个问题,对于教学来说,是可取的,也是很好的方法,我同意converse的观点,探求用数学等手段解决问题的方法!具体用什么语言实现是小问题

论坛徽章:
0
82 [报告]
发表于 2004-11-11 12:17 |只看该作者

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

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

论坛徽章:
0
83 [报告]
发表于 2004-11-11 13:42 |只看该作者

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

这周末吧,抽空将各位能运行的代码都测试一下,分析一下大家的算法。

分析指标主要是时间复杂度及空间复杂度,当然也要考虑一下数学上的简单、优美及数据结构的可理解性,及与楼主的游戏规则的符合程度。

测试N=1k,10k,100k,1M,10M,100M,1G
(自己的本本内存只有768M,不知能不能测试到G的数量级)

测试完成后再将测试代码及结果提供给大家点评。

论坛徽章:
0
84 [报告]
发表于 2004-11-11 13:58 |只看该作者

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

没必要吧,为了一个NULL还是0的吵半天。NULL比较符合传统习惯,0的话是目前唯一理论意义上能够跨平台的用法,大部分情况下它们是等价的。
至于这个题目本身,我当初看到的做法是递归。至于意义问题,无非是为了练手;我们学循环的时候,会用星号打图案,这也没什么意义,但是毕竟因此而熟悉不同的循环方式。

论坛徽章:
0
85 [报告]
发表于 2004-11-11 14:52 |只看该作者

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

我不懂C++ 兄又回来了哈,你的那个论坛和主页都不错的,支持一下先。
极光 该用户已被删除
86 [报告]
发表于 2004-11-13 13:02 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
87 [报告]
发表于 2004-11-14 13:43 |只看该作者

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

  1.                
  2.                 for(i=0;phead!=NULL;phead=phead->;next,i++)
  3.                 {
  4.                         sprintf(temp,"%d",phead);比较笨,取得地址,存入数组
  5.                         add[i]=atoi(temp);
  6.                 }

  7.      phead=(struct ListNode *)add[i-1];
  8.                 for(j=0;j<i-1;j++)
  9.                 {
  10.                         phead->;next = (struct ListNode *)add[i-2-j];
  11.                         phead=phead->;next;
  12.                 }

  13.                 phead->;next=NULL;
  14.      phead=(struct ListNode *)add[i-1];
  15.       return phead;
复制代码

为什么没有人看看我的代码呢,我可没有结点变量!!!!
强制转化不知道可不可以!其实,就是操作一堆地址,一堆整数!!
用汇编时很清楚,用c就忘了!

论坛徽章:
0
88 [报告]
发表于 2004-11-14 15:00 |只看该作者

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

论坛徽章:
0
89 [报告]
发表于 2004-11-26 09:58 |只看该作者

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

如题           
!!!!!!!!!!

论坛徽章:
0
90 [报告]
发表于 2004-12-16 17:43 |只看该作者

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

用递归算法试试,不用加任何多余的变量
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP