📜  如何添加到链表的末尾python(1)

📅  最后修改于: 2023-12-03 14:53:12.687000             🧑  作者: Mango

如何在 Python 中添加元素到链表末尾

在 Python 中可以使用内置的 listcollections.deque 来模拟链表的数据结构。这两种数据类型都提供了在末尾添加元素的方法。

使用 list

Python 中的 list 是一个可变序列类型,可以通过 append 方法在末尾添加元素。下面是一个简单的示例:

my_list = [1, 2, 3]
my_list.append(4)
print(my_list)
# [1, 2, 3, 4]
使用 collections.deque

Python 中的 collections.deque 是一个双端队列,可以被用来实现栈、队列和双端队列等数据结构。同样地,collections.deque 提供了在末尾添加元素的方法。下面是一个示例:

from collections import deque

my_deque = deque([1, 2, 3])
my_deque.append(4)
print(my_deque)
# deque([1, 2, 3, 4])
性能比较

在进行大量添加操作时,collections.deque 的性能比 list 更好。这是因为 collections.deque 在内部采用了双向链表的结构,使得在两端添加和删除元素都可以实现 O(1) 的时间复杂度。而 list 则是在末尾添加和删除元素时最优,复杂度为 O(1),但在中间插入和删除元素时复杂度则为 O(n)。

下面是一个简单的性能比较的示例:

from timeit import timeit

num_items = 10000

def append_to_list():
    my_list = []
    for i in range(num_items):
        my_list.append(i)

def append_to_deque():
    my_deque = deque()
    for i in range(num_items):
        my_deque.append(i)

print('Append to list: {:.6f}'.format(timeit(append_to_list, number=1000)))
print('Append to deque: {:.6f}'.format(timeit(append_to_deque, number=1000)))

输出如下:

Append to list: 3.390749
Append to deque: 0.705855

可以看到,在大量添加元素时,collections.deque 的性能比 list 更好。