簡單鍊錶的原理在這裡就不贅述了,推薦一篇比較不錯的部落格:鍊錶原理
需要實現的操作包括:
在頭節點之前插入節點;
在尾節點之後插入節點;
刪除包含指定資料的節點;
刪除尾節點;
查詢包含指定資料的節點;
獲取鍊錶的長度;
輔助操作包括:
清空鍊錶;
判斷鍊錶是否為空。
下面是簡單鍊錶的實現
/**
* 注意:該鍊錶實現不適合用於儲存有重複元素的集合
*/public class singlelist
public singlenode(type data)
public singlenode(type data, singlenode next)
/*** data 的 get()和 set()方法
*/public type getdata()
public void setdata(type data)
/*** next 的 get()和 set()方法
*/public singlenode getnext()
public void setnext(singlenode next)
}private singlenode head;
private singlenode tail;
public singlelist()
public singlenode gethead()
public singlenode gettail()
/*** 從頭部新增節點
* @param data:新增的節點的資料
*/public void addnodebeforehead(type data)
}/**
* 從尾部新增節點
* @param data:新增的節點的資料
*/public void addnodeaftertail(type data) else
}/**
* 根據資料刪除節點
* @param data:需要刪除的節點的資料
* 注意:會將資料域與 data 相同的、最靠近煉表頭的那乙個節點刪除掉
* @return 刪除的節點 n
*/public singlenode removenodebydata(type data)
while (before.next != null)
before = current;
}return null;
}/**
* 刪除尾節點 tail
* @return 刪除掉的原來的尾節點 tail
*/public singlenode removetail()
//下乙個節點是尾節點
current.next = null;//設定當前節點的後繼節點為空
tail = current;//將當前節點設定為尾節點 tail
return oldtail;
}/**
* 根據資料查詢節點
* @param data :節點的資料
* @return :查詢到的節點
* 注意 :該方法只返回滿足要求的、離頭節點最近的節點
*/public singlenode findnodebydata(type data)
return null;
}/**
* 計算鍊錶長度
* @return 鍊錶的節點個數(即鍊錶長度)
*/public int getlistlength()
return count;
}/**
* 清空鍊錶
*/public void clear()
/*** 判斷鍊錶是否為空
* @return 鍊錶是否為空
*/public boolean isempty()
/*** 列印鍊錶中的資料,僅用於測試
*/public void display()
system.out.println("\n");
}}
下面是測試**
public class singletest
public void run()
list.display();//列印鍊錶
testaddnodeafterhead(); //測試方法 addnodebeforehead()
testaddnodeaftertail(); //測試方法 addnodeaftertail()
testremovenodebydata(); //測試方法 removenodebydata()
testremovetail(); //測試方法 removetail()
testfindnodebydata(); //測試方法 findnodebydata()
testgetlistlength(); //測試方法 getlistlength()
}public void testaddnodeafterhead()
public void testaddnodeaftertail()
public void testremovenodebydata()
public void testremovetail()
public void testfindnodebydata()
list.display();
}public void testgetlistlength()
}
格式不夠好,還望多多包涵~/bq java實現簡單鍊錶
鍊錶是由乙個個節點連線起來的。首先鍊錶的node類 為 public class node public node int value public void display 其次是鍊錶類,注意點已經寫在注釋 附上 public class linklist intlength int n 1 no...
鍊錶 java實現雙向鍊錶
前面已經總結了單向鍊錶,有興趣的兄弟可以進我部落格看一下。大家對比就可以看出,實現同樣的功能單向鍊錶要比雙向鍊錶痛苦的多。所以呀不斷地總結前輩留下的東西,是社會進步的基礎呀。可以直接看linkedlist的原始碼,其就是個雙向鍊錶。一 雙向鍊錶的結構。1 首先節點的結構,其中包含本節點內容,同時需要...
鍊錶實現系列(二) 雙向鍊錶Java實現
雙向鍊錶原理見部落格 資料結構 雙向鍊錶簡單實現及圖示 注 我採用的是正規化實現,如需實現具體鍊錶,只需將type改為具體型別即可。實現的操作包括 在頭節點之前插入節點 在尾節點之後插入節點 刪除包含指定資料的節點 刪除尾節點 查詢包含指定資料的節點 獲取鍊錶的長度 輔助操作包括 清空鍊錶 判斷鍊錶...