📅  最后修改于: 2023-12-03 14:39:01.818000             🧑  作者: Mango
在Python中,可以使用addner list(也称为linked list)来存储数据。addner list是一种线性数据结构,其元素被链接在一起,并且可以在任何时间添加,删除或更改。在本文中,我们将学习如何使用Python创建addner list,并介绍一些有用的操作和技巧。
在Python中,可以使用类和节点(node)的概念来创建和管理addner list。节点表示单个元素,包括存储在其中的值和指向下一个节点的指针。下面是一个基本的节点类的示例:
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
该类具有一个名为data的属性,该属性存储节点中的值。它还具有一个名为next的属性,该属性表示指向下一个节点的指针。如果当前节点是链表的最后一个节点,则next指针为None。
使用节点类,我们可以定义一个addner list类,并包含各种方法,例如添加,删除和搜索节点。下面是一个addner list类的示例:
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
return
last_node = self.head
while last_node.next:
last_node = last_node.next
last_node.next = new_node
def prepend(self, data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
def delete(self, key):
current_node = self.head
if current_node and current_node.data == key:
self.head = current_node.next
current_node = None
return
prev_node = None
while current_node and current_node.data != key:
prev_node = current_node
current_node = current_node.next
if current_node is None:
return
prev_node.next = current_node.next
current_node = None
def search(self, key):
current_node = self.head
while current_node:
if current_node.data == key:
return True
current_node = current_node.next
return False
在这个示例中,addner list类具有一个名为head的属性,该属性表示addner list的第一个元素(称为头节点)。它还有几个方法:append用于在链表的末尾添加一个新节点,prepend用于在链表的开头添加新节点,delete用于删除具有给定键的节点,search用于在链表中查找具有给定键的节点。
现在,我们已经了解了如何使用Python创建addner list类,让我们看看一些常见的操作方法。
要添加一个新的节点,可以使用append或prepend方法。append方法将新节点添加到链表的末尾,而prepend方法将新节点添加到链表的开头。这里有一些样例代码:
linked_list = LinkedList()
# 添加到末尾
linked_list.append(1)
linked_list.append(2)
linked_list.append(3)
# 添加到开头
linked_list.prepend(0)
要删除一个节点,可以使用delete方法。该方法需要一个参数,即要删除的节点的键。这里有一些示例代码:
# 删除一个节点
linked_list.delete(3)
# 删除另一个节点
linked_list.delete(0)
要查找具有给定键的节点,可以使用search方法。该方法需要一个参数,即要查找的节点的键。示例代码如下:
# 查找一个节点
print(linked_list.search(2)) # True
# 查找一个不存在的节点
print(linked_list.search(10)) # False
要遍历链表并访问每个节点,可以使用while循环。下面是一个示例代码:
current_node = linked_list.head
while current_node:
print(current_node.data)
current_node = current_node.next
在本文中,我们介绍了Python中的addner list,包括如何使用节点类创建链表,如何添加,删除和搜索节点,以及如何遍历链表。这些都是您在编写Python应用程序时需要了解的基本操作,因此请务必记住它们。