Python链表基础实现:节点定义与列表操作详解

洛溪
洛溪
发布时间:2026-10-14 | 4人浏览过
原创

本文详细解析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链表操作技巧请持续关注本站其他文章。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表