/**
* 用於 linkedlist 繼承
* * @param */
public
inte***ce
mylist
public
class
mylinkedlist
implements
mylist
/*** 1.00 將 element 作為最後乙個節點進行連線
** @param element
*/void
linklast
(e element)
else
//⑦ mylinkedlist 的大小(它包含的node數)+ 1
size++;}
/** * 2.01 判斷 add() 方法的 index 是否合法
** @param index : 要處理的索引值
*/private
void
rangcheckforadd
(int index)
}/**
* 2.02 判斷 index 是否合法
** @param index : 要處理的索引值
*/private
void
rangcheck
(int index)
}/**
* 2.03 在指定節點索引處返回(非空)節點, 如 : nodesucc.
** @param index : 要新增的節點位置
* @return : 返回位置為 index 的 node 節點
*/private node
node
(int index)
}else
}//返回位置為 index 的 node 節點
return x;
}/**
* 2.03 在非空節點 succ 之前插入節點資料 element
** @param element : 要插入的節點資料 element
* @param succ : 在 nodesucc 前插入節點
*/private
void
linkbefore
(e element, node
succ)
else
//⑦ mylinkedlist 的大小(它包含的node數)+ 1
size++;}
/** * 2.04 取消鏈結非空節點 x
** @param x : 要移除的 nodex 節點
* @return : 被移除的 nodex 節點的 element 資料
*/private e unlink
(node
x)else
//④ 如果 nodex 節點指向的下乙個節點為空節點, 即: 為尾節點
if(next == null)
else
//⑨ 將將要移除的 nodex 節點的 element 置為 null
x.element = null;
//⑩ mylinkedlist 的大小(它包含的node數)-1
size--
;// 返回被移除的 nodex 節點的 element
return element;
}/**
* 1.10 將指定節點追加到此列表的末尾
** @param element : 資料
* @return
*/@override
public
boolean
add(e element)
/** * 2.10 在此列表中的指定位置插入指定節點。
* 將當前位於該位置的節點(如果有)和右下的任何後續節點(向其索引新增乙個節點)移位。
** @param index : 要新增的節點位置
* @param element : 節點儲存的 element 資料
*/@override
public
void
add(
int index, e element)
else
}/**
* 2.11 獲取指定索引位置的節點儲存的 element 資料
** @param index : 要獲取的節點位置
* @return : 返回 node 節點中儲存的 element 資料
*/@override
public e get
(int index)
/** * 2.12 替換指定索引位置的節點
** @param index : 要替換的節點位置
* @param element : 要替換的 節點資料
* @return : 返回 被替換的 node 節點中的 element 資料
*/@override
public e set
(int index, e element)
/** * 2.13 移除指定索引位置的節點
** @param index : 要移除的節點位置
* @return : 返回 被移除的 node 節點中的 element 資料
*/@override
public e remove
(int index)
/** * 2.14 mylinkedlist 的大小(它包含的 node 數)
** @return : 返回包含的 node 數
*/@override
public
intsize()
/** * 2.15 清空 鍊錶
*/@override
public
void
clear()
//⑥ 將 頭節點和尾節點 都置為 null
head = tail = null;
//⑦ 將 mylinkedlist 長度置為 0
size =0;
}/**
* 0.00 鍊錶就是一系列儲存資料元素的單元通過指標串接起來形成的.
* * 雙向鍊錶中的每個節點除了要儲存它的下乙個節點物件的引用以外,
* 還會儲存乙個它前乙個節點物件的引用,這樣就可以實現雙向查詢資料.
** @param */
private
static
class
node
}@override
public string tostring()
sb.("]");
return sb.
tostring()
;}}
public
class
student
public
intgetid()
public string getname()
public string getaddress()
@override
protected
void
finalize()
@override
public string tostring()
';}}
public
class
test
}
手寫雙向鍊錶LinkedList的幾個常用功能
實現的功能如下 1 建立鍊錶 2 新增節點 預設新增和指定位置新增 3 訪問某乙個節點 4 刪除節點 5 獲得鍊錶的長度大小 6 判斷鍊錶是否為空 7 自定義鍊錶的列印格式 8 清空鍊錶 注意 要弄清楚節點的前赴 和 後繼,刪除時要注意賦值的順序!定義 鍊錶中 節點的類node public cla...
手寫雙向鍊錶LinkedList的幾個常用功能
實現的功能如下 1 建立鍊錶 2 新增節點 預設新增和指定位置新增 3 訪問某乙個節點 4 刪除節點 5 獲得鍊錶的長度大小 6 判斷鍊錶是否為空 7 自定義鍊錶的列印格式 8 清空鍊錶 注意 要弄清楚節點的前赴 和 後繼,刪除時要注意賦值的順序!定義 鍊錶中 節點的類node public cla...
鍊錶 Linked List(雙向鍊錶)
單鏈表與雙鏈表的區別 單向鍊錶,查詢的方向只能是乙個方向,而雙向鍊錶可以向前或者向後查詢。單向鍊錶不能自我刪除,需要靠輔助節點,而雙向鍊錶,則可以自我刪除,所以單鏈表刪除節點時,總是找到temp的下乙個節點來刪除的 雙鏈表doublelinkedlist 大部分 與單鏈表的例項相同 單鏈表例項 單擊...