Python链表基础实现:节点定义与列表操作详解
本文详细解析Python中链表的基础实现方法。通过定义Node类存储数据与指针,以及LinkList类管理节点序列,实现了添加节点、查看列表内容和计算长度等功能。文章提供了完整的代码示例,帮助开发者理解链表结构及基本操作方法。
链表基本概念
链表
链表(linked list)是一种由被称为“结点”的数据元素组成的数据结构。每个结点包含两部分信息:一是存储实际数据值的“信息域”,二是指向下一个结点地址的“指针域”。由于结点间通过指针链接,只需一个变量即可访问整个序列。链表的第一个结点称为头结点(或首结点),其地址由单独变量存储;最后一个结点的指针域为空,表示序列结束。
Python链表代码实现
代码
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 #记录链表的尾部
def add_node(self, node):
'添加节点'
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):
'列表长度'
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):
'删除节点'
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):
'查看具体节点'
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链表操作的相关内容,更多Python链表操作技巧请持续关注本站其他文章。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









