Python 鍊錶的基本操作

2021-09-24 11:28:04 字數 2380 閱讀 2811

一、鍊錶簡介

鍊錶是一種在儲存單元上非連續、非順序的儲存結構。資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現。鍊錶是由一系列的結點組成,結點可以在執行時動態生成。每個結點包含兩部分:資料域與指標域。資料域儲存資料元素,指標域儲存下一結點的指標。

二、單鏈表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...