python如何對(duì)鏈表操作
鏈表
鏈表(linked list)是由一組被稱為結(jié)點(diǎn)的數(shù)據(jù)元素組成的數(shù)據(jù)結(jié)構(gòu),每個(gè)結(jié)點(diǎn)都包含結(jié)點(diǎn)本身的信息和指向下一個(gè)結(jié)點(diǎn)的地址。
由于每個(gè)結(jié)點(diǎn)都包含了可以鏈接起來的地址信息,所以用一個(gè)變量就能夠訪問整個(gè)結(jié)點(diǎn)序列。
也就是說,結(jié)點(diǎn)包含兩部分信息:一部分用于存儲(chǔ)數(shù)據(jù)元素的值,稱為信息域;另一部分用于存儲(chǔ)下一個(gè)數(shù)據(jù)元素地址的指針,稱為指針域。鏈表中的第一個(gè)結(jié)點(diǎn)的地址存儲(chǔ)在一個(gè)單獨(dú)的結(jié)點(diǎn)中,稱為頭結(jié)點(diǎn)或首結(jié)點(diǎn)。鏈表中的最后一個(gè)結(jié)點(diǎn)沒有后繼元素,其指針域?yàn)榭铡?/p>
代碼
class Node():
'創(chuàng)建節(jié)點(diǎn)'
def __init__(self, data):
self.data = data
self.next = None
class LinkList():
'創(chuàng)建列表'
def __init__(self, node):
'初始化列表'
self.head = node #鏈表的頭部
self.head.next = None
self.tail = self.head #記錄鏈表的尾部
def add_node(self, node):
'添加節(jié)點(diǎn)'
self.tail.next = node
self.tail = self.tail.next
def view(self):
'查看列表'
node = self.head
link_str = ''
while node is not None:
if node.next is not None:
link_str += str(node.data) + '-->'
else:
link_str += str(node.data)
node = node.next
print('The Linklist is:' + link_str)
def length(self):
'列表長(zhǎng)度'
node = self.head
count = 1
while node.next is not None:
count += 1
node = node.next
print('The length of linklist are %d' % count)
return count
def delete_node(self, index):
'刪除節(jié)點(diǎn)'
if index + 1 > self.length():
raise IndexError('index out of bounds')
num = 0
node = self.head
while True:
if num == index - 1:
break
node = node.next
num += 1
tmp_node = node.next
node.next = node.next.next
return tmp_node.data
def find_node(self, index):
'查看具體節(jié)點(diǎn)'
if index + 1 > self.length():
raise IndexError('index out of bounds')
num = 0
node = self.head
while True:
if num == index:
break
node = node.next
num += 1
return node.data
node1 = Node(3301)
node2 = Node(330104)
node3 = Node(330104005)
node4 = Node(330104005052)
node5 = Node(330104005052001)
linklist = LinkList(node1)
linklist.add_node(node2)
linklist.add_node(node3)
linklist.add_node(node4)
linklist.add_node(node5)
linklist.view()
linklist.length()
以上就是python如何對(duì)鏈表操作的詳細(xì)內(nèi)容,更多關(guān)于python 鏈表操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- python實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中雙向循環(huán)鏈表操作的示例
- python操作鏈表的示例代碼
- python/golang 刪除鏈表中的元素
- python/golang實(shí)現(xiàn)循環(huán)鏈表的示例代碼
- python的鏈表基礎(chǔ)知識(shí)點(diǎn)
- 用python介紹4種常用的單鏈表翻轉(zhuǎn)的方法小結(jié)
- Python實(shí)現(xiàn)鏈表反轉(zhuǎn)的方法分析【迭代法與遞歸法】
- Python實(shí)現(xiàn)隊(duì)列的方法示例小結(jié)【數(shù)組,鏈表】
- python實(shí)現(xiàn)從尾到頭打印單鏈表操作示例
- Python棧的實(shí)現(xiàn)方法示例【列表、單鏈表】
- Python單鏈表原理與實(shí)現(xiàn)方法詳解
- python判斷鏈表是否有環(huán)的實(shí)例代碼
相關(guān)文章
如何利用Python連接MySQL數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)儲(chǔ)存
當(dāng)我們學(xué)習(xí)了mysql數(shù)據(jù)庫(kù)后,我們會(huì)想著該如何將python和mysql結(jié)合起來運(yùn)用,下面這篇文章主要給大家介紹了關(guān)于如何利用Python連接MySQL數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)儲(chǔ)存的相關(guān)資料,需要的朋友可以參考下2021-11-11
Python使用functools模塊中的partial函數(shù)生成偏函數(shù)
所謂偏函數(shù)即是規(guī)定了固定參數(shù)的函數(shù),在函數(shù)式編程中我們經(jīng)??梢杂玫?這里我們就來看一下Python使用functools模塊中的partial函數(shù)生成偏函數(shù)的方法2016-07-07
python字典根據(jù)key排序的實(shí)現(xiàn)
本文主要介紹了python字典根據(jù)key排序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
Python爬蟲實(shí)現(xiàn)驗(yàn)證碼登錄代碼實(shí)例
這篇文章主要介紹了Python爬蟲實(shí)現(xiàn)驗(yàn)證碼登錄,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05

