首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在python中创建一个Doubly表单列表

在Python中创建一个Doubly Linked List(双向链表)可以通过自定义一个双向节点类来实现。下面是一个示例的代码:

代码语言:txt
复制
class Node:
    def __init__(self, data):
        self.data = data
        self.prev = None
        self.next = None

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

    def append(self, data):
        new_node = Node(data)
        if self.head is None:
            self.head = new_node
        else:
            current_node = self.head
            while current_node.next:
                current_node = current_node.next
            current_node.next = new_node
            new_node.prev = current_node

    def prepend(self, data):
        new_node = Node(data)
        if self.head is None:
            self.head = new_node
        else:
            new_node.next = self.head
            self.head.prev = new_node
            self.head = new_node

    def insert_after(self, prev_node, data):
        if prev_node is None:
            return
        new_node = Node(data)
        new_node.next = prev_node.next
        prev_node.next = new_node
        new_node.prev = prev_node
        if new_node.next:
            new_node.next.prev = new_node

    def delete(self, data):
        current_node = self.head
        while current_node:
            if current_node.data == data:
                if current_node.prev:
                    current_node.prev.next = current_node.next
                    if current_node.next:
                        current_node.next.prev = current_node.prev
                else:
                    self.head = current_node.next
                    if current_node.next:
                        current_node.next.prev = None
            current_node = current_node.next

    def print_list(self):
        current_node = self.head
        while current_node:
            print(current_node.data, end=" ")
            current_node = current_node.next
        print()

# 示例用法
doubly_list = DoublyLinkedList()
doubly_list.append(1)
doubly_list.append(2)
doubly_list.append(3)
doubly_list.prepend(0)
doubly_list.insert_after(doubly_list.head.next, 1.5)
doubly_list.delete(2)
doubly_list.print_list()

这段代码创建了一个双向链表的类DoublyLinkedList,并包含了常见的双向链表操作,如追加元素(append)、在头部插入元素(prepend)、在指定节点后插入元素(insert_after)、删除指定元素(delete)等。另外,还提供了一个打印链表内容的方法(print_list)。

注意:这个示例只是给出了在Python中创建双向链表的基本代码实现,未涉及到与云计算、腾讯云等相关的内容。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券