本節是在上一小節的基礎上繼續完善我們的鍊錶相關方法的編寫,在本節中我們著重對如何獲取鍊錶中元素、查詢元素以及修改元素進行學習。
//對於該方法則是依靠在get()方法的。獲取鍊錶的第index(0-based)個位置的元素 (實際不常用,練習用)
public e get(int
index)
node
cur = dummyhead.next;
for (int i = 0; i < index; i++)
return
cur.e;
}
//對於該方法頁是依靠在get()方法的。獲得鍊錶的第乙個元素
public
e getfirst()
//獲得鍊錶的最後乙個元素
public
e getlast()
//由於我們使用了虛擬頭結點,而我們每次都需要從第乙個真實節點開始,因此需要首先得到虛擬頭結點的下乙個節點是誰,然後判斷給定的元素值與鍊錶中的元素值內容是否相等(equals()方法),若相等則返回true,否則返回false。修改鍊錶的第index(0-based)個位置的元素 (實際不常用,練習用)
public
void set(int
index, e e)
node
cur = dummyhead.next;
for (int i = 0; i < index; i++)
cur.e =e;
}
//為了在輸出該鍊錶物件時可以檢視相關自定義的資訊,我們對tostring()進行重寫改造。查詢鍊錶中是否有元素e
public
boolean
contains(e e)
cur =cur.next;
}return
false
; }
//此時該方法等同於重寫object類,便於測試
@override
public
string tostring()
return
res.tostring();
}
//重寫object類,便於測試
@override
public
string tostring()
return
res.tostring();
}
package結果為:linkedlist;
public
class
testmain
system.out.println("**********==修改鍊錶**********==");
linkedlist.set(2,666);
system.out.println(linkedlist);}}
結果分析:由於是在鍊錶頭部新增元素,故最終顯示結果為從右到左,最右為null(也就是最後乙個節點)。
關於本小節,若您覺得還行、還過得去,麻煩給個推薦吧,謝謝!!
12 9 2獲取鍊錶元素個數
鍊錶中往往會儲存大量的資料內容,同時鍊錶的本質有相當於乙個陣列,那麼為了可以準確的獲取資料的個數,就需要在鍊錶中進行資料的統計操作。1 ilink 在介面中定義乙個size 方法用於返回資料儲存的個數 獲取鍊錶中集合元素的儲存個數 return 元素個數 public int size 2 link...
鍊錶定義 鍊錶的插入 鍊錶的刪除 鍊錶的查詢
鍊錶的定義 鍊錶是一種常見的重要的資料結構。它是動態地進行儲存分配的一種結構。它可以根據需要開闢記憶體單元。鍊錶有乙個 頭指標 變數,以head表示,它存放乙個位址。該位址指向乙個元素。鍊錶中每乙個元素稱為 結點 每個結點都應包括兩個部分 一為使用者需要用的實際資料,二為下乙個結點的位址。因此,he...
鍊錶 獲取鍊錶的倒數第k個元素
思路1 暴力 先暴力一次鍊錶,記錄鍊錶的長度n,第二次遍歷n k 1個元素,返回,一共需要2n 1 k個 思路2 兩個指標,左右指標相差k 1個距離,有指標到達鍊錶末尾時,做指標指向倒數第k個元素.經典思路,兩個指標相差k個間隔 思路2實現 public static node getfindnfr...