package datastructure.chapter4;
/** * @author: zjtmeng
* @date: 2020/1/1 22:24
* @version 1.0
*/public
class
linkedlist
public
node
(e e)
public
node()
@override
public string tostring()
}//虛擬頭結點
private node dummyhead;
private
int size;
public
linkedlist()
//獲取鍊錶中元素的個數;
public
intgetsize()
//返回鍊錶是否為空
public
boolean
isempty()
//在鍊錶的index(0-based)位置新增新的元素e
public
void
add(
int index, e e)
prev.next =
newnode
(e, prev.next)
; size++;}
//在煉表表頭處新增元素
public
void
addfirst
(e e)
//在鍊錶末尾處新增新的元素e
public
void
addlast
(e e)
//獲得鍊錶的第index(0-based)個位置的元素
public e get
(int index)
return cur.e;
}//獲得鍊錶的第乙個元素
public e getfirst()
//獲得鍊錶的最後乙個元素
public e getlast()
//修改鍊錶的第index(0-based)個位置上的元素為e
public
void
setdummyhead
(int index, e e)
cur.e = e;
}//查詢鍊錶中是否存在元素e
public
boolean
contains
(e e)
return
false
;// for (int i = 0; i < size; i++)
// return false;
}//從鍊錶中刪除第index(0-based)個位置上的元素
public e remove
(int index)
node delnode = prev.next;
prev.next = delnode.next;
delnode.next = null;
size--
;return delnode.e;
}//從鍊錶中刪除第乙個元素
public e removefirst()
//從鍊錶中刪除最後乙個元素
public e removelast()
@override
public string tostring()
res.
("null");
return res.
tostring()
;}}
封裝鍊錶和雙向鍊錶
封裝鍊錶 尾新增的效率低,非法下標的判斷也非常低。1 單鏈表 節點 資料域 指標域資料項 頭指標尾指標 節點數量 2 靜態鍊錶 節點 資料域 游標靜態鍊錶的節點儲存在連續的記憶體,通過遊戲來訪問下乙個節點。這種鍊錶在插入刪除時只需要修改游標的值,而不用申請 釋放記憶體達到鏈式結構的效果。但是也犧牲的...
雙向鍊錶封裝
雙向鍊錶 function doublelinkedlist 煉表頭節點 this.head null 鍊錶尾節點 this.fail null 鍊錶長度 this.length 0 在鍊錶尾部新增元素 var newelement new node value if this.head else ...
自己寫的鍊錶
include include int mylistcount 0 struct mylist mymainlist void main mymainlist.pc null mymainlist.pcnext null mylist plisttemp null char pctemp null ...