Java實現單鏈表 多鍊錶

2021-09-13 16:59:23 字數 2545 閱讀 3556

如果讓你儲存多個物件,你第一時間想到的肯定是陣列,但是如果讓你儲存多個任意物件呢?這時我們會想到用object型的陣列來解決。

object data = new object[3];

但是陣列是乙個長度固定的線性結構,在實際開發中,不論我們的內容不足或過多,都有可能造成空間的浪費,所以我們可以使用乙個鍊錶來動態儲存資料,就像火車車廂的設計,長度不固定,有多少資料就儲存多少資料。

單鏈表:

class

node

public object getdata()

public

void

setdata

(object data)

public node getnext()

public

void

setnext

(node next)

}public

class

singlelinkedlist

public

static

void

printlink

(node node)

}}

思考:鍊錶和陣列的區別在實際開發中,我們用的更多的是雙向鍊錶。那麼雙向鍊錶與單向鍊錶的區別又是啥呢?其實雙向鍊錶只是在查詢前乙個節點的時候進行了優化,時間複雜度變為了o(1)。

雙向鍊錶:

在單鏈表裡,掛載在客戶端實現,模擬生活中坐火車,我們只是乘坐,而不需要把火車的車廂連在一起,那麼如何解決呢?

在雙向煉表裡有乙個新的類link:負責節點之間的動態掛載,node負責節點內容的設定,真實儲存內容,ilink表示如果link類的結構發生了變化,就需要更改客戶端**,為了避免這種情況,就讓使用者直接使用ilink介面。

}//根據指定索引取得具體的節點

private node node

(int index)

return temp;

} node temp=

this

.last;

for(

int i=size-

1;i>index;i--

)return temp;

}/**

* 判斷指定索引是否合法

*/private

boolean

islinkedindex

(int index)

/** * 刪除節點

*/private object unlink

(node x)

else

if(next==null)

else

x.data = null;

this

.size--

;return elementdata;}}

public

class

doublelinkedlist

}

Java單鏈表(雙端鍊錶)簡單實現

1 節點資料結構 public class linknode public linknode int value 2 單鏈表實現 public class singlelink public void insertfirst int value else public intdeletefirst ...

鍊錶的實現 單鏈表 雙鏈表

鍊錶知識的引入 對於之前我們接觸到的陣列知識,要想儲存多個物件,首先想到的一定是物件陣列。但是陣列是乙個長度固定的線性結構,一旦內容不足或者過多,都會在成記憶體資源的浪費,由此引入鍊錶充分解決資源浪費問題。class node private屬性需要設定getter setter方法 public ...

單鏈表和雙向鍊錶反轉 java

題目要求 反轉單向和雙向鍊錶 題目 分別實現反轉單向鍊錶和反轉雙向鍊錶的函式。要求 如果鍊錶長度為n,時間複雜度要求為o n 額外空間 複雜度要求為o 1 public class e7 reverselink public static node reverselist node head ret...