2、單向鏈表

單向鏈表

定義:鏈表是一種遞歸的結構,它是指向下一條鏈表的引用,它指向的下一條鏈表可能爲空。

一般鏈表由n(n>=0)個結點相連結而成,能夠形象的表示以下:

而對於結點來講, 它也是一種數據結構,它包含一個指針域和一個數據域,它的數據域保存它須要保存的數據,指針域保存的是它所指向的下一個結點的引用。
結點類能夠定義以下:

鏈表LinkedList中定義兩個私有屬性,分別是Node head,int size,其構造方法以下數據結構

這裏爲何定義一個空數據域的頭結點呢?咱們先考慮一下若是鏈表沒有這個頭結點的時候咱們添加新的結點須要怎樣去實現。此時須要分爲兩種狀況:
第一種,添加結點的位置是鏈表的頭部,此時直接新建立一個結點,並讓其指針域保存以前鏈表的引用便可。
第二種,添加結點的位置不在鏈表的頭部,此時須要找到待添加結點位置的前一個結點prev,讓新建立結點的指針域保存prev.next的引用,並且還須要更新prev的指針域爲新建立的結點。
而若是咱們增長了一個空數據域的頭結點,對於任何位置插入結點咱們都不要額外考慮,由於全部的情形都是上述的第二種狀況,簡化了代碼的書寫。添加結點的方法以下:

考慮完增長結點,下一步就是考慮刪除結點了,刪除結點的思路也很簡單,就是找到待刪除結點的前一個結點prev,讓prev.next = prev.next.next便可,即讓prev的下一個結點變爲待刪除結點的下一個結點。
下面是找到指定位置的結點的方法3d

刪除結點的方法:

相關文章
相關標籤/搜索