鍊錶演算法遞迴的理解

2022-03-17 20:27:52 字數 840 閱讀 8871

一:前言

今天在裡面看了一篇文章單鏈表的倒置),其實自己看了乙個小時最後那點還是沒看明白,自己的不明白在於,遞迴呼叫到最後執行遞迴下面的**是怎麼執行的,如果執行了,執行時的資料從哪來的?我就是這點想不明白,但是我自己能看懂這個**。此時的想不明白不知道算不算鑽牛角尖。還是先說說自己的理解吧!!!

二:我把他的那段**複製過來了,單鏈表我自己又隨便寫個是:9---->6------->8------>2

public

linknode reverse(linknode node)

在返回『2』後,那麼var prenode=2,再執行var temp =node.next,此時node=2,2的next是空,空的下乙個再指向node,再把node的下乙個置為空,再繼續道node=8,8的下乙個本來是『2』的,也就是說此時temp等於『2』,temp.next=node此時就把『2』的下乙個指向了『8』,再把『8』的下乙個置為空。以此類推,還是覺得這裡的一段**好巧啊!!!希望自己的理解是正確的啊。

三:自己做了個小測試,有助於理解

package

link;

public

class

linkdemo

public

static

int printf(int

i)else

}}

四:總結

以前自己看演算法的時候老是覺得不好懂,今天自己試驗了下,才知道需要自己在實踐中去理解,比自己只看書強多了啊。以後還是得多學學演算法,太巧妙了啊。希望這幾天能把知識總結下,好多啊,都沒時間去整理,自己還想去對一些原始碼進行研究了。只能盡量擠下時間了!!!

帶頭節點鍊錶的遞迴演算法

include using namespace std typedef class student linklist,link void init link linklist l void input link linklist l,int e 尾插法建立鍊錶 void delete link li...

鍊錶的遞迴

1 輸出鍊錶資料域的所有值 void printlink1 elemsn h 遞迴實現正向輸出 2 逆向輸出所有值 void printlink2 elemsn h 遞迴實現逆向輸出 3 返回鍊錶所有結點的和 int sumlink elemsn h 求鍊錶結點的和 4 返回鍊錶資料域值為奇數的個數...

遞迴演算法的理解

今天我對遞迴演算法做了乙個徹底的總結,總算是悟出了一些東西 遞迴演算法是軟體設計中解決遞迴問題的思想。什麼是遞迴。我們可以從字面意思去理解他的意思。遞迴遞迴,先遞再歸。遞的意思就是遞推,即從高向下逐步展開。歸的意思就是回歸,即從下向上進行。也就是說當你拿到了乙個複雜的東西,你不知道怎麼解決。你可以對...