今天課間的時候偶然看到了一個面試題:單鏈表的逆置,看了題解感覺乖乖的,貌似和以前看的版本不搭,於是重新進行了一番探究 單鏈表的逆置分為兩種方法:頭插法和就地逆置法,這兩種方法雖然都能夠達到逆置的效果,但還是有着不小的差別 頭插法 算法思路:依次取原鏈表中的每一個節點 ...
鏈表的逆置之頭插法: 頭插法的核心思想就是先把當前的鏈表切分為兩個部分,第一個部分為只有一個頭節點的單鏈表,第二個部分是除頭節點外的剩余所有的鏈表,挨個把第二部分的節點插入到第一個部分中,插入的方法是運用建立單鏈表的頭插法,其剛好可以起到逆置的作用。 此方法的空間復雜度為O 代碼如下: 完整的測試代碼: ...
2020-09-08 16:18 0 566 推薦指數:
今天課間的時候偶然看到了一個面試題:單鏈表的逆置,看了題解感覺乖乖的,貌似和以前看的版本不搭,於是重新進行了一番探究 單鏈表的逆置分為兩種方法:頭插法和就地逆置法,這兩種方法雖然都能夠達到逆置的效果,但還是有着不小的差別 頭插法 算法思路:依次取原鏈表中的每一個節點 ...
1.定義一個數組,把1 2 3 4賦值給這個數組 2.建立一個新的頭結點 3.頭插與尾插 (因為前期C語言基礎沒打牢固,在寫這個代碼時,真的遇見了很多問題,導致我有幾天心情都不是太好,因為老是陷進一個死循環啊!!!特別是 指針的使用,把所有函數堆在一起后,完全分不清了,而數據結構的重點又在 ...
前言 輸入的是一條帶有頭結點的鏈表L 故頭結點為L,第一個節點為L->next. 先上代碼 講解(摘自:鏈表逆置詳細講解(圖文)) 我們先看第一輪循環做了什么: 建議閱讀順序:黑色(初始)、藍色(操作)、紅色(理解) 第二輪: 建議閱讀順序:黑色(初始)、藍色(操作 ...
頭插法: 頭插法圖解: 解釋:頭插法顧名思義就是在頭結點的后面增加結點。 首先創建一個帶頭結點的空的單鏈表head 其次按照線性表中元素的逆序依次讀入數據元素,如果不是結束標志時,申請結點s,將s結點插入到頭結點之后。如上圖b。 尾插法: 尾插法圖解: 解釋:頭 ...
數據結構1-單鏈表的頭插法、尾插法建立及遍歷 ...
數據結構之單鏈表頭插法,尾插法 單鏈表是線性表中的一種,單鏈表的頭插法也稱前插法。 鏈表也是線性表的一種,與順序表不同的是,它在內存中不是連續存放的。在C語言中,鏈表是通過指針相關實現的。而單鏈表是鏈表的其中一種,關於單鏈表就是其節點中有數據域和只有一個指向下個節點的指針域。 創建 ...
在進行單鏈表的基本運算之前必須先建立單鏈表,建立單鏈表的常用方法有兩種:頭插法建表和尾插法建表 頭插法建表,從一個空表開始,讀取字符數組a中的字符,生成新節點,將讀取的數據存放到新節點的數據域中,然后將新節點插入到當前鏈表的表頭上,直到讀完字符數組a的所有元素為止。 頭插法建表 ...
單鏈表也稱為線性鏈表或單向鏈表,它是線性表的鏈接存儲表示。 單鏈表的結構第一個結點(亦稱為首元結點)的地址可以通過鏈表的頭指針first找到,其他結點的地址則在前驅結點的link域中,鏈表的最后一個結點沒有后繼,在結點的link域中放一個空指針NULL,NULL在< ...