四種方式實現--從尾到頭輸出鍊錶
方法一:借用棧倒序輸出鍊錶
方法二:先翻轉鍊錶,再順序輸出
方法三:遞迴實現,乙個字妙,兩個字很妙,三個字太妙了
方法四:用陣列實現
方法一:借用棧倒序輸出鍊錶
因為棧是先進後出,把鍊錶中的元素存進棧中,鍊錶前面的元素在棧底,後面的元素在棧頂,鍊錶後面的元素先出棧
方法二:先翻轉鍊錶,再按順序列印(主要是想自己實現單鏈表的翻轉,這種實現方式破壞了鍊錶的結構,當然再翻轉一下就還原了)
翻轉鍊錶的步驟:
1:將當前節點的next節點指向他以前的前乙個節點
2:當前節點下移一位
3:如果是最後乙個節點,就把它的next節點指向它以前的前乙個節點,並推出迴圈
方法三:用遞迴實現
很誠實的說盜用了別人的思想,真的太妙了,完全能看出你是否真的體會了遞迴的原理
正如那位哥們所說,遞迴就是乙個進棧出棧的過程,鍊錶前面的元素先進棧,在棧底,後面的元素後進棧,在棧頂,先出棧,哈哈。。。
方法四:借用陣列實現,跟用棧實現的方式差不多, lovejenny
說的實現方式跟這種方式是一樣的,空間複雜度都是o(n)
原始碼
//三種方式實現--從尾到頭輸出鍊錶
#include
<
stack
>
#include
<
string
>
#include
<
iostream
>
using
namespace
std;
class
outfromend
} node;
outfromend()
void
add(
intdata)
//借用棧倒序輸出鍊錶
//因為棧是先進後出,把鍊錶中的元素存進棧中,鍊錶前面的元素在棧底,後面的元素在棧頂,鍊錶後面的元素先出棧
void
stackmethod()
node
*tmp
=head
->
next;
stack
<
int>
s;while
(tmp
!=null)
while(!
s.empty())}/*
先翻轉鍊錶,再按順序列印(主要是想自己實現單鏈表的翻轉,這種實現方式破壞了鍊錶的結構,當然再翻轉一下就還原了)
翻轉鍊錶的步驟:
1:將當前節點的next節點指向他以前的前乙個節點
2:當前節點下移一位
3:如果是最後乙個節點,就把它的next節點指向它以前的前乙個節點,並推出迴圈
*/void
reverse()
cur=
head
->
next;
node
*prev
=null;
node
*pcur
=head
->
next;
node
*next;
while
(pcur
!=null)
next
=pcur
->
next;
pcur
->
next
=prev;
prev
=pcur;
pcur
=next;
}head
->
next
=pcur;
node
*tmp
=head
->
next;
while
(tmp
!=null)
}void
print3()
//用遞迴實現
//很誠實的說盜用了別人的思想,真的太妙了,完全能看出你是否真的體會了遞迴的原理
//正如那位哥們所說,遞迴就是乙個進棧出棧的過程,鍊錶前面的元素先進棧,在棧底,後面的元素後進棧,在棧頂,先出棧,哈哈。。。
void
recursion(node
*head)
if(head
->
next
!=null)
//如果把這句放在第二個if前面,那就是從頭到尾輸出鍊錶,曾經的你或許是用while或者用for迴圈輸出鍊錶,現在你又多了一種方式
cout
<<
head
->
data
<
";}//
借用陣列實現
void
print4()
tmp=
head
->
next;
int*a=
newint
[len] ;
for(
inti
=len-1
;i>=0;i
--)for(
inti=0
;i<
len;i++)
delete a;
}private
:node
*head,
*cur;
};
四種方式實現 從尾到頭輸出鍊錶
四種方式實現 從尾到頭輸出鍊錶 方法一 借用棧倒序輸出鍊錶 方法二 先翻轉鍊錶,再順序輸出 方法三 遞迴實現,乙個字妙,兩個字很妙,三個字太妙了 方法四 用陣列實現 方法一 借用棧倒序輸出鍊錶 因為棧是先進後出,把鍊錶中的元素存進棧中,鍊錶前面的元素在棧底,後面的元素在棧頂,鍊錶後面的元素先出棧 方...
四種方式實現從尾到頭輸出鍊錶 zz
轉本文介紹四種方式實現從尾到頭輸出鍊錶,方法一 借用棧倒序輸出鍊錶。方法二 先翻轉鍊錶,再順序輸出。方法三 遞迴實現,乙個字妙,兩個字很妙,三個字太妙了。方法四 用陣列實現。四種方式實現倒序輸出鍊錶 方法一 借用棧倒序輸出鍊錶 方法二 先翻轉鍊錶,再順序輸出 方法三 遞迴實現,乙個字妙,兩個字很妙,...
三種方式實現 從尾到頭輸出鍊錶
三種方式實現 從尾到頭輸出鍊錶 方法一 借用棧倒序輸出鍊錶 方法二 先翻轉鍊錶,再順序輸出 方法三 遞迴實現,乙個妙,兩個字妙啊 方法一 借用棧倒序輸出鍊錶 因為棧是先進後出,把鍊錶中的元素存進棧中,鍊錶前面的元素在棧底,後面的元素在棧頂,鍊錶後面的元素先出棧 方法二 先翻轉鍊錶,再按順序列印 主要...