鍊錶(linked list)是由一組被稱為結點的資料元素組成的資料結構,每個結點都包含結點本身的資訊和指向下乙個結點的位址。由於每個結點都包含了可以鏈結起來的位址資訊,所以用乙個變數就能夠訪問整個結點序列。也就是說,結點包含兩部分資訊:一部分用於儲存資料元素的值,稱為資訊域;另一部分用於儲存下乙個資料元素位址的指標,稱為指標域。鍊錶中的第乙個結點的位址儲存在乙個單獨的結點中,稱為頭結點或首結點。鍊錶中的最後乙個結點沒有後繼元素,其指標域為空。
class
node
():
'建立節點'
def__init__
(self,data):
self.data = data
self.next =
none
class
linklist
():
'建立列表'
def__init__
(self, node):
'初始化列表'
self.head = node
self.head.next =
none
self.tail = self.head
defadd_node
(self, node):
'新增節點'
self.tail.next = node
self.tail = self.tail.next
defview
(self):
'檢視列表'
node = self.head
link_str =
''while node
isnotnone:
if node.next
isnotnone:
link_str += str(node.data) +
'-->'
else:
link_str += str(node.data)
node = node.next
print (
'the linklist is:' + link_str)
deflength
(self):
'列表長度'
node = self.head
count =
1while node.next
isnotnone:
count +=
1node = node.next
print (
'the length of linklist are %d' % count)
return count
defdelete_node
(self, index):
'刪除節點'
if index+
1 > self.length():
raise indexerror(
'index out of bounds')
num =
0node = self.head
while
true:
if num == index
-1:break
node = node.next
num +=
1tmp_node = node.next
node.next = node.next.next
return tmp_node.data
deffind_node
(self, index):
'檢視具體節點'
if index+
1 > self.length():
raise indexerror(
'index out of bounds')
num =
0node = self.head
while
true:
if num == index:
break
node = node.next
num +=
1return node.data
node1 = node(
10)node2 = node(
'dec')
node3 = node(
1010)
node4 = node(
'bin')
node5 = node(
12)node6 = node(
'oct')
node7 = node(
'a')
node8 = node(
'hex')
linklist = linklist(node1)
linklist.add_node(node2)
linklist.add_node(node3)
linklist.add_node(node4)
linklist.add_node(node5)
linklist.add_node(node6)
linklist.add_node(node7)
linklist.add_node(node8)
linklist.view()
linklist.length()
linklist.delete_node(
1)linklist.view()
find_node = linklist.find_node(
6)print (find_node)
the linklist is:
10-->dec-->
1010-->bin-->
12-->oct-->a-->hex
the length of linklist are
8the length of linklist are
8the linklist is:
10-->
1010-->bin-->
12-->oct-->a-->hex
the length of linklist are
7hex
python中煉表和陣列 Python
x 2020 9 12 12 24 上傳 2020 9 12 12 24 上傳 2020 9 12 12 24 上傳 曾經有個禿頂的面試官問了我乙個問題 陣列相對於鍊錶,為什麼我們都說陣列查詢效率快?python 大星 陣列占用的記憶體空間是連續的 面試官 還有其他的嗎?python 大星 以 in...
python鍊錶
class node def init self,data 要存的資料 self.data data 指向下乙個節點的指標 self.next none class linkedlist def init self 鍊錶長度 self.size 0 鍊錶的頭部 self.head none 鍊錶的尾...
鍊錶(python)
class node def init self,value none next none self.value value self.next next class linkedlist def init self self.head node self.tail none self.length...