免费注册 查看新帖 |

Chinaunix

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

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

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

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

原帖由 "FH" 发表:


无话可说。
不知道咱俩谁的中文出了问题。


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

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

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

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

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

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

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

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

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

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

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

>;>;p;..........


我编这个程序能实现应有的功能就够了
我没有必要解释p;是什么
只是有人不明白,要我解释。
所以我只能按照自己的意思贴出来。
有必要理论吗?

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

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

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

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

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

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

原帖由 "FH" 发表:
while(q=head,p=head->;next;p;q=p,p=p->;next)
这句不太懂,就是那个"p;"是什么意思啊?
原帖由 "流川" 发表:


我编这个程序能实现应有的功能就够了
我没有必要解释p;是什么
只是有人不明白,要我解释。
所以我只能按照自己的意思贴出来。
有必要理论吗?

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

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

论坛徽章:
0
66 [报告]
发表于 2004-11-04 20:25 |只看该作者

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

这道题与下面的问题本质上是一样的,只是更加入了一点数学归纳而已。

int a=5,b=199;
如何在不使用临时变量使得a=199,b=5,即:a与b的值交换。

解决办法之一如下:
        a=a^0xFFFF;
        b=b^a;
        a=a^b;
        b=b^0xFFFF;
        b=b^a;
        printf("a=%d , b=%d \n",a,b);
应该完成了a与b的交换,而且符合要求,就是不使用临时变量。


解决了关键问题了,剩下的楼主自己先考虑一下吧。应该不难的了。

论坛徽章:
0
67 [报告]
发表于 2004-11-04 20:36 |只看该作者

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

写完回贴后,从头到尾看了一下大家的回贴,感觉是你们没有完全理解楼主的意思。

1. 主要限制是不能使用辅助节点,即节点的临时分配,但不等于不能有头指针等一般单向链表必须要有的指针;

2. 可能使用int类型的读数器,如果没有,可能是不能完成多于2个的节点的交换;

还有,就是有个建议,大家在这只讨论问题,不要说其它的好吗?

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

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

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

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

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

看见楼上的算法挺有意思,能不能简化成:
b=b^a;
a=a^b;
b=b^a;
这样呢?
推导了一下,没测试。

论坛徽章:
0
70 [报告]
发表于 2004-11-05 15:02 |只看该作者

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

我想应该是可以的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP