详解Python将元素添加到链表的第一个和最后一个位置

  • Post category:Python

请看下面的详细攻略。

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程序添加链表元素的完整攻略。希望能对你有所帮助。