《資料結構 (一) ----- 資料結構基本概念&基於陣列實現線性表》
《資料結構 (二) ----- 單向鍊錶&雙向鍊錶》
雙鏈表
一、基本概念
單鏈表由乙個個節點組成
二、介面public
class
mysinglelistnode
}
三、功能實現public
inte***ce
mylist
四、幾個關鍵的地方public
class
mysinglelinkedlist
implements
mylist
else
size++;}
@override
public
boolean
delete
(object element)
else
size--
;return
true;}
temp1 = temp2;
temp2 = temp2.next;
}return
false;}
@override
public
boolean
delete
(int index)
else
size--
;return
true;}
temp1 = temp2;
temp2 = temp2.next;
i++;}
return
false;}
@override
public
boolean
update
(int index, object newelement)
else
return
true;}
temp = temp.next;
i++;}
return
false;}
@override
public
boolean
contains
(object target)
temp = temp.next;
}return
false;}
@override
public object get
(int index)
temp = temp.next;
i++;}
throw
newindexoutofbound***ception
("index: "
+ index +
", "
+"size: "
+ size);}
@override
public
intsize()
@override
public
intindexof
(object element)
temp = temp.next;
i++;}
return-1
;}@override
public string tostring()
sb.("]");
return sb.
tostring();}}
void add(object element)
功能實現
public
void
add(object element)
else
size++
;}
boolean delete(int index)
功能實現
public
boolean
delete
(int index)
else
size--
;return
true;}
temp1 = temp2;
temp2 = temp2.next;
i++;}
return
false
;}
說明:一、基本概念建立乙個變數i手動來記錄temp2在鍊錶中的位置
temp1始終在temp2的前面一位
注意要單獨討論index=0 —> 被刪除節點是頭節點的情況

三、功能實現public
inte***ce
mylist
四、幾個關鍵的地方public
class
mydoublelinkedlist
implements
mylist
@override
public
void
add(object element)
@override
public
boolean
delete
(object element)
temp = temp.next;
}return
false;}
@override
public
boolean
delete
(int index)
temp = temp.next;
index++;}
return
false;}
@override
public
boolean
update
(int index, object newelement)
temp = temp.next;
i++;}
return
false;}
@override
public
boolean
contains
(object target)
@override
public object get
(int index)
temp = temp.next;
i++;}
throw
newindexoutofbound***ception
("index: "
+ index +
", "
+"size: "
+ size);}
@override
public
intsize()
@override
public
intindexof
(object element)
temp = temp.next;
i++;}
return-1
;}@override
public string tostring()
builder.
("]");
return builder.
tostring();}}
temp節點掃瞄鍊錶的時候,把頭尾兩個啞元當作頭尾標誌,只用掃瞄它們中間的節點
void add(object newelement)
功能實現
public
void
add(object element)
說明:新節點左邊的前後指標更新完後再去更新右邊的前後指標
boolean delete(object element)
功能實現
public
boolean
delete
(object element)
temp = temp.next;
}return
false
;}
資料結構 反轉單向鍊錶和雙向鍊錶
程式設計師 面試指南 左程雲 讀書筆記 第三章反轉單向鍊錶和雙向鍊錶 單向鍊錶 public class node public class returnlist public static node relist node head 逆序後的第乙個節點 node pre null node nex...
資料結構 單向與雙向鍊錶
結點中有乙個元素以及指向下乙個結點的指標 public class node 對鍊錶進行增刪改查 public class link public void delete e e else system.out.println 成功刪除 e else public void replace e e1...
資料結構 鍊錶 雙向鍊錶
注意typedef的定義結構,以及dinklist的資料型別 typedef struct dnode dnode,dinklist 注意插入第乙個結點時,prior指標的空指向問題 if l next null 若l後繼結點為空 則省略該步驟 l next prior p 基本 頭插法建立雙向鍊錶...