数学建模社区-数学中国
标题:
+那位高手帮忙用C写一个将链表反转的递归算法!+
[打印本页]
作者:
solucky
时间:
2004-10-18 14:40
标题:
+那位高手帮忙用C写一个将链表反转的递归算法!+
<
> 帮忙用C写一个将<FONT color=#f70909>链表反转</FONT>的<FONT color=#ff0000>递归</FONT>算法!
" |8 ?# ~' G4 I/ R8 Q( t
比如:
: M: K D! ?- [' ~4 ]( \- J
表原数据这:1 2 3 4
5 n* d3 x2 l" o) C$ f
计算后的数据为:4 3 2 1</P>
* i. m/ h* \0 O9 D# \ s
<
>先谢了!</P>
( n/ S2 ?# E& Z9 Q4 ?0 Q6 m$ D
<
>祝大家天天快乐!</P>
作者:
ilikenba
时间:
2004-10-18 17:48
<
>我说说算法的思路,下面的是思路可以用具体的语言实现:</P><
> 首先定义你的链表结构体,和一个可以存储链表结构的栈。</P><
> main()</P><
>{ </P><
> searchnext;</P><
> make;//从栈里面依次弹出节点形成一个新的链表,就是所求的链表!</P><
>}</P><
>function searchnext;</P><
>{</P><
> read;//读入一个链表节点的函数。</P><
> store;//将这个节点的信息压入栈。</P><
> if( islast ==true)//如果本节点是最后的节点。</P><
>{</P><
> store;//将这个节点的信息压入栈.</P><
>}</P><
>else</P><
>{</P><
> searchnext;</P><
>}</P><
>}</P>
作者:
xShandow
时间:
2004-10-18 19:15
<
>这个很简单啊。你用两个链表,相互替换一下,再把替换后的表的元素付给第一个链表不就可以实现倒序了吗?</P>
作者:
ilikenba
时间:
2004-10-18 21:45
<
>什么叫相互替换?说的具体一些!</P>
作者:
无名
时间:
2004-10-20 20:03
<
>preNode = NULL;</P>
: h/ i$ V; Q# G5 m: O4 p3 h8 ^( X+ X
<
>node = list->Fitst;</P>
; D: {/ Z/ T0 C& {4 O3 x% l
<
>while(node != NULL )</P>
% N8 ]7 p+ ^+ _* u: o
<
>{</P>
3 i# W2 ^3 ^1 `& K6 \
<
> tempNode = node->next;</P>
3 s. }% h# c+ P; X' o1 a! W+ t
<
> node->Next = preNode;</P>
/ s9 W' p' w0 X% }7 h. w8 d
<
> preNode = node;</P>
' ^0 }8 g! a! ~! T, C2 L: }+ U
<
> node = tempNode;</P>
' ~3 Z; V1 ]( m7 L4 B
<
>}</P>
9 O, Z1 o- m2 @* O7 P
[此贴子已经被作者于2004-10-20 20:09:40编辑过]
作者:
ilikenba
时间:
2004-10-20 20:51
<
>楼上的方法是将链表的前后的指针交换了位置,值得推荐,但是没有用递归呀!</P>
作者:
无名
时间:
2004-10-21 09:00
<
>不好意思没有看见递归,循环改递归最容易不过啦</P><
>void Reverse(List * list, Node * preNode)</P><
>{</P><
> Node * node = list->First();</P><
> if(node != NULL && node->next != NULL)</P><
> {</P><
> Node * tempNode = node->next;</P><
> node->Next = preNode;</P><
> list->SetHead(tempNode);</P><
> Reverse(list, node);</P><
> }</P><
>}</P><
>调用时只要:Reverse(list, NULL);</P>
作者:
realyoyy
时间:
2004-11-7 21:56
标题:
求助
<
>楼上的code SetHead是什么没说</P><
> </P>
作者:
ilikenba
时间:
2004-11-9 22:09
<
>设置节点的头指针吧!</P>
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5