请看下面的详细攻略。
Python程序添加链表元素的完整攻略
1. 了解链表
首先,我们需要了解什么是链表。链表是一种数据结构,是以节点(node)为基本单位,通过节点又将若干个值连接起来的数据结构。
2. 创建链表
在Python中,创建链表可以使用类的方式。
# 定义链表节点
class Node:
def __init__(self, data):
self.data = data
self.next = None
# 定义链表
class LinkedList:
def __init__(self):
self.head = None
上面的代码定义了一个链表的节点类Node和一个链表类LinkedList,其中链表类包含一个头结点head。初始时,这个头结点是None,表示链表为空。
3. 在链表的第一位插入元素
链表的第一位插入元素也称为在链表头插入元素。
# 在链表头插入元素
def add_first(self, data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
上面的代码中,首先创建一个新的节点new_node,然后将新的节点的next设为链表的头结点,最后将链表的头结点改为新建的节点。这样,我们就在链表的第一个位置插入了一个元素。
示例:
# 创建一个空链表
list = LinkedList()
# 在链表头插入数据
list.add_first(3)
list.add_first(2)
list.add_first(1)
# 打印链表
current = list.head
while current:
print(current.data)
current = current.next
运行后的输出结果是:1 2 3
4. 在链表的最后一位插入元素
在链表最后一位插入元素,也称为在链表尾部插入元素。示例代码如下:
# 在链表尾部插入元素
def add_last(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
return
current = self.head
while current.next:
current = current.next
current.next = new_node
上面的代码中,首先创建一个新的节点new_node,然后判断链表是否为空。如果链表为空,将头结点设为新建的节点;如果链表不为空,则遍历到链表的最后一个节点,将最后一个节点的next设为新建的节点。
示例:
# 创建一个空链表
list = LinkedList()
# 在链表尾部插入数据
list.add_last(1)
list.add_last(2)
list.add_last(3)
# 打印链表
current = list.head
while current:
print(current.data)
current = current.next
运行后的输出结果是:1 2 3
5. 完整代码
# 定义链表节点
class Node:
def __init__(self, data):
self.data = data
self.next = None
# 定义链表
class LinkedList:
def __init__(self):
self.head = None
# 在链表头插入元素
def add_first(self, data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
# 在链表尾部插入元素
def add_last(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
return
current = self.head
while current.next:
current = current.next
current.next = new_node
# 创建一个空链表
list = LinkedList()
# 在链表头插入数据
list.add_first(3)
list.add_first(2)
list.add_first(1)
# 在链表尾部插入数据
list.add_last(4)
list.add_last(5)
list.add_last(6)
# 打印链表
current = list.head
while current:
print(current.data)
current = current.next
输出结果是:1 2 3 4 5 6。
以上就是Python程序添加链表元素的完整攻略。希望能对你有所帮助。