如何用python实现一个简单的单向链表?
2024-01-07 17:46:37
实现一个简单的单向链表涉及两个基本的构建块:节点(Node)和链表(LinkedList)。下面是详细步骤和解释:
1. 实现节点(Node)
链表中的每个节点通常包含两部分:存储的数据(data)和一个指向下一个节点的引用(next)。节点可以用一个类来实现。
节点类的定义:
class ListNode:
def __init__(self, data):
self.data = data # 存储数据
self.next = None # 初始时,下一个节点的引用为空
2. 实现链表(LinkedList)
链表则是节点的集合,通常包含对首个节点的引用,称为头节点(head)。通过头节点,你可以访问链表中的每个节点。
链表类的定义:
class LinkedList:
def __init__(self):
self.head = None # 初始时链表为空
# 添加元素到链表末尾
def append(self, data):
new_node = ListNode(data) # 创建新节点
if not self.head: # 如果链表为空,新节点成为第一个节点
self.head = new_node
else: # 否则,遍历到链表末尾,并将最后一个节点的next指向新节点
current = self.head
while current.next:
current = current.next
current.next = new_node
# 遍历链表,打印每个节点的数据
def display(self):
current = self.head
while current:
print(current.data, end=" -> ")
current = current.next
print("None")
使用链表
创建一个链表并添加数据,然后遍历显示:
# 创建链表实例
my_list = LinkedList()
# 向链表添加数据
my_list.append(1)
my_list.append(2)
my_list.append(3)
# 打印链表
my_list.display() # 输出 1 -> 2 -> 3 -> None
功能解释:
- 初始化 (
__init__
): 当创建链表实例时,设置头节点为None,表示开始时链表为空。 - 添加元素 (
append
): 创建一个新的节点,并将其添加到链表的末尾。这涉及到遍历链表直到找到最后一个节点,然后将其next
引用指向新节点。 - 显示链表 (
display
): 从头节点开始遍历链表,打印出每个节点中的数据,直到链表结束。
一个简单单向链表的实现,涵盖了最基本的操作:添加数据和遍历打印链表。当然,更完整的链表实现可能还包括删除节点、查找数据等操作。
文章来源:https://blog.csdn.net/weixin_43561635/article/details/135439315
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!