一、鍊錶簡介
鍊錶是一種在儲存單元上非連續、非順序的儲存結構。資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現。鍊錶是由一系列的結點組成,結點可以在執行時動態生成。每個結點包含兩部分:資料域與指標域。資料域儲存資料元素,指標域儲存下一結點的指標。
二、單鏈表1.定義節點
// an linklist node
class
node
(object):
def__init__
(self,value)
: self.value = value
self.
next
=none
2.定義鍊錶
// 定義單鏈表和基本操作
class
linklist
(object):
// 初始化鍊錶
def__init__
(self)
: self.head =
none
//判斷鍊錶是否為空
defisempty
(self)
:return self.head ==
none
//鍊錶長度
defgetlength
(self)
: length =
0 cur = self.head
while cur !=
none
: length +=
1 cur = cur.
next
return length
// 遍歷鍊錶
defprintlinklist
(self)
: cur = self.head
while cur !=
none
:print
(cur.value)
cur = cur.
next
// 從尾部新增節點
defaddnodefromtail
(self, value)
: newnode = node(value)
if self.isempty():
self.head = newnode
else
: cur = self.head
while cur.
next
!=none
: cur = cur.
next
cur.
next
= newnode
//從頭部新增節點
defaddnodefromhead
(self,value)
: newnode = node(value)
cur = self.head
newnode.
next
= cur
self.head = newnode
//指定乙個位置插入節點
definsert
(self, value, index)
: newnode = node(value)
if index <=0:
newnode.
next
= self.head
elif index > self.getlength():
self.addnodefromtail(value)
else
: cur = self.head
for i in
range
(index-1)
: cur = cur.
next
newnode.
next
= cur.
next
cur.
next
= newnode
//刪除指定位置的節點:
defdeletenode
(self,index)
:if isempty():
print
("this linklist is empty"
)if index <
0or index >= self.getlength():
print
("error: out of inedx"
) cur = self.head
for i in
range
(index-1)
: cur = cur.
next
cur.
next
= cur.
next
.next
鍊錶的基本操作
include include include include using namespace std struct listnode void initnode listnode node bool isempty listnode head void pushfront listnode hea...
鍊錶的基本操作
鍊錶操作是最基本的 必須掌握的知識點,最好滾瓜爛熟,透徹理解。工作時間短用的也不夠頻繁,還是總結一下比較好,以加強鞏固。1.單鏈表 結點形式 區分幾個概念 首節點 第乙個元素所在節點。頭指標 指向首節點的指標。頭結點 為了操作方便,在第乙個節點之前附設的乙個結點,此時指向頭結點的為頭指標。基本操作 ...
鍊錶的基本操作。。。
include node.h 列印鍊錶 void print node head printf n 從尾部插入 void insert tail node head,const int d while t next null t next p p next null 從頭部插入 void inser...