基礎資料結構之單鏈表倒置

2021-10-09 02:59:10 字數 717 閱讀 7247

1.遞迴方法

簡單來說就是除了空鍊錶和乙個結點的鍊錶之外,當結點的下一跳不為空時就繼續讓下一跳執行倒置。當結點下一跳 為空時,返回該結點給倒數第二個結點,倒數第二個結點將最後一次遞迴返回的最後乙個結點的指標指向自己,然後自己的指標置空,然後返回。依此類推。描述起來有點麻煩,**比較簡介,**如下:

list reverse(list i)

if(i->nextnull)

list temp=reverse(i->next);

temp->next=i;

i->next=null;

return i;

}時間複雜度o(n),空間複雜度o(n).

2.非遞迴方法

非遞迴方法與遞迴方法在時間複雜度上沒有區別,但是空間複雜度為常量。

思路是從第乙個結點依次往後掃瞄,用乙個pre結點儲存當前結點,乙個next結點儲存下乙個結點,最開始pre和next置空,然後next儲存當前結點的next,i的next指向pre,然後pre儲存當前結點,依次遍歷所有結點,最後返回最後乙個結點

**如下:

list reverse(list i)

if(i->nextnull)

list pre =null;

list next=null;

while(i!=null)

return pre;

}

資料結構基礎之單鏈表

資料結構基礎之單鏈表 對單鏈表的建立,插入,刪除,逆序,列印元素做乙個小小的總結,不過我不覺得這些東西在具體的工作後到底能發揮什麼作用,因為強大的stl已經把這些都做好了,我們只需要明白在什麼場合使用哪乙個stl就可以了。鍊錶有乙個資料域,有乙個指標域,它的操作其實就是對指標域的操作,無非是指來指去...

資料結構基礎之單鏈表

資料結構基礎之單鏈表 對單鏈表的建立,插入,刪除,逆序,列印元素做乙個小小的總結,不過我不覺得這些東西在具體的工作後到底能發揮什麼作用,因為強大的stl已經把這些都做好了,我們只需要明白在什麼場合使用哪乙個stl就可以了。鍊錶有乙個資料域,有乙個指標域,它的操作其實就是對指標域的操作,無非是指來指去...

資料結構 單鏈表 基礎

在實現單鏈表的基本功能後 單鏈表的幾個基本問題 1.比較順序表和煉表的優缺點,說說它們分別在什麼場景下使用?順序表 物理位置相鄰 優點 在一段記憶體中用陣列連續存放,所以方便隨機查詢元素。缺點 動態開闢,容易造成記憶體浪費,需要乙個元素,開闢過多。前面新增元素時,要逐個挪動後面的每個元素,較麻煩。場...