幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2451|回复: 7

[通用编程] C链表里的倒序排列

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2007-8-21 11:15:43 | 显示全部楼层 |阅读模式
问结点数据域依次为 a1,a2.........,an的一个单链表所有结点逆置,即第一个结点数据域变为 an
最后一个结点数据域变为 a1?
[s:8]这个应该怎么做呢?
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

50

主题

994

帖子

6699

积分

管理员

爱干啥干啥!

Rank: 9Rank: 9Rank: 9

积分
6699
发表于 2007-8-21 23:36:53 | 显示全部楼层
最简单的方法,开临时的指针储存需要保持的数据,然后从头到尾遍历一遍。
  1. // 节点定义如下(伪码,不一定对哦-_-b)
  2. struct node
  3. {
  4.    int value; //这里储存数据,第一个节点数据就是a1,依次类推……
  5.    node* next; //这里是下一个节点的地址,如果是0表示链表结束了。
  6. };
  7. // 函数接受传入的头节点地址,返回新的头节点地址
  8. node* Reverse(node* pFirst)
  9. {
  10. node* pCur = pFirst;
  11. node* pNext = 0;
  12. node* pLast = 0;
  13. while(pCur)
  14. {
  15.   pNext = pCur->next;
  16.   pCur->next = pLast;
  17.   pLast = pCur;
  18.   pCur = pNext;
  19. }
  20. return pCur;
  21. }
复制代码

“放下屠刀,立地成佛” 故应先杀生,然后再成佛。

(\\_/) (-_-) ()+() this is bunny priest.
回复 支持 反对

使用道具 举报

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
发表于 2007-8-21 23:50:37 | 显示全部楼层
如果是双头的话,next和prev指针的值交换就OK……
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复 支持 反对

使用道具 举报

50

主题

994

帖子

6699

积分

管理员

爱干啥干啥!

Rank: 9Rank: 9Rank: 9

积分
6699
发表于 2007-8-23 00:52:22 | 显示全部楼层
引用第0楼august于2007-08-21 11:15发表的 C链表里的倒序排列 :
问结点数据域依次为 a1,a2.........,an的一个单链表所有结点逆置,即第一个结点数据域变为 an
最后一个结点数据域变为 a1?
[s:8]这个应该怎么做呢?

ls啊,如果是双向链表,这问题还有什么意义……\\(-____-)/

“放下屠刀,立地成佛” 故应先杀生,然后再成佛。

(\\_/) (-_-) ()+() this is bunny priest.
回复 支持 反对

使用道具 举报

23

主题

218

帖子

2470

积分

⑥精研

积分
2470
发表于 2007-8-23 01:49:51 | 显示全部楼层
[s:5]
其实我的意思是:为什么不做成双头的。

各位WS我吧……
ONScripter for PSP/Windows中文版 http://blog.163.com/john_he_
回复 支持 反对

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2007-8-23 09:45:08 | 显示全部楼层
这不就是循环链表么?

ps.怪事了.FantasyDR怎么引用lz的发言,却对ls的说话.
え~え~お!!!
回复 支持 反对

使用道具 举报

50

主题

994

帖子

6699

积分

管理员

爱干啥干啥!

Rank: 9Rank: 9Rank: 9

积分
6699
发表于 2007-8-23 21:57:06 | 显示全部楼层
我把“单链表”三个字加颜色了:)

“放下屠刀,立地成佛” 故应先杀生,然后再成佛。

(\\_/) (-_-) ()+() this is bunny priest.
回复 支持 反对

使用道具 举报

19

主题

842

帖子

1万

积分

⑧专业

絕望青年,一起增高吧

积分
13676
发表于 2007-8-23 22:43:36 | 显示全部楼层
循环链表惷最後項會指向第一項
雙向link list指移動時可住前一項/下一項

為著彼岸,便要與之妥協 但為著彼岸,更不能與之妥協

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-3 20:03 , Processed in 0.027610 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表