Python写链表

2024-01-09 10:42:49

链表是一种常见的数据结构,可以用于存储和操作一系列的数据。以下是一个用Python实现链表的例子:


class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None

    def append(self, data):
        new_node = Node(data)
        if not self.head:
            self.head = new_node
        else:
            current = self.head
            while current.next:
                current = current.next
            current.next = new_node

    def prepend(self, data):
        new_node = Node(data)
        new_node.next = self.head
        self.head = new_node

    def delete(self, data):
        if not self.head:
            return

        if self.head.data == data:
            self.head = self.head.next
            return

        current = self.head
        while current.next:
            if current.next.data == data:
                current.next = current.next.next
                return
            current = current.next

    def print_list(self):
        current = self.head
        while current:
            print(current.data)
            current = current.next

这是一个简单的单向链表实现。其中,Node代表链表中的节点,每个节点包含一个数据项和一个指向下一个节点的指针。LinkedList代表链表本身,其中包含对链表进行操作的一些方法,如追加、插入、删除和打印链表等。

通过调用append方法可以在链表末尾添加一个新的节点,调用prepend方法可以在链表头部插入一个新的节点,调用delete方法可以删除链表中的指定节点。print_list方法用于打印链表的所有节点。

以下是使用这个链表的示例:


# 创建一个链表
linked_list = LinkedList()

# 在链表末尾添加节点
linked_list.append(1)
linked_list.append(2)
linked_list.append(3)

# 在链表头部插入节点
linked_list.prepend(0)

# 删除链表中的节点
linked_list.delete(2)

# 打印链表中的节点
linked_list.print_list()

运行这段代码将输出以下结果:

0
1
3

这是一个基本的链表实现,并且可以根据需要扩展和修改以满足具体的需求。

文章来源:https://blog.csdn.net/xukris/article/details/135472444
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。