四種方式實現 從尾到頭輸出鍊錶

2022-02-27 03:43:09 字數 2689 閱讀 4309

四種方式實現--從尾到頭輸出鍊錶

方法一:借用棧倒序輸出鍊錶

方法二:先翻轉鍊錶,再順序輸出

方法三:遞迴實現,乙個字妙,兩個字很妙,三個字太妙了

方法四:用陣列實現

方法一:借用棧倒序輸出鍊錶

因為棧是先進後出,把鍊錶中的元素存進棧中,鍊錶前面的元素在棧底,後面的元素在棧頂,鍊錶後面的元素先出棧

方法二:先翻轉鍊錶,再按順序列印(主要是想自己實現單鏈表的翻轉,這種實現方式破壞了鍊錶的結構,當然再翻轉一下就還原了)

翻轉鍊錶的步驟:

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

轉本文介紹四種方式實現從尾到頭輸出鍊錶,方法一 借用棧倒序輸出鍊錶。方法二 先翻轉鍊錶,再順序輸出。方法三 遞迴實現,乙個字妙,兩個字很妙,三個字太妙了。方法四 用陣列實現。四種方式實現倒序輸出鍊錶 方法一 借用棧倒序輸出鍊錶 方法二 先翻轉鍊錶,再順序輸出 方法三 遞迴實現,乙個字妙,兩個字很妙,...

三種方式實現 從尾到頭輸出鍊錶

三種方式實現 從尾到頭輸出鍊錶 方法一 借用棧倒序輸出鍊錶 方法二 先翻轉鍊錶,再順序輸出 方法三 遞迴實現,乙個妙,兩個字妙啊 方法一 借用棧倒序輸出鍊錶 因為棧是先進後出,把鍊錶中的元素存進棧中,鍊錶前面的元素在棧底,後面的元素在棧頂,鍊錶後面的元素先出棧 方法二 先翻轉鍊錶,再按順序列印 主要...