Python 链表、栈与队列实现及排序算法代码示例

在本篇文章中,我们将探讨Python中的顺序表链表队列以及排序算法的实现方式,并提供代码示例,帮助您快速掌握这些重要的数据结构和算法。


1. 顺序表

顺序表可以通过Python的列表(List)来实现,提供了动态大小的数组功能:

# 创建一个顺序表
array = []

# 添加元素
array.append(10)
array.append(20)
print(array)

2. 链表

链表(Linked List)通常分为单链表和双链表,使用节点(Node)来实现每个元素及其指针:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

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

    def append(self, data):
        if not self.head:
            self.head = Node(data)
        else:
            current = self.head
            while current.next:
                current = current.next
            current.next = Node(data)

3. 栈

栈(Stack)是一种后进先出(LIFO)的数据结构。我们可以使用列表来模拟栈的行为:

stack = []

# 压入元素
stack.append('a')
stack.append('b')

# 弹出元素
stack.pop()

4. 队列

队列(Queue)是一种先进先出(FIFO)的数据结构,Python的 collections 模块提供了 deque 来高效实现队列:

from collections import deque

queue = deque()
queue.append('x')
queue.append('y')
queue.popleft()

5. 排序算法

排序算法在Python中种类繁多,以下是几种经典算法的示例代码:

冒泡排序

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]

快速排序

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot xss=removed xss=removed xss=removed> pivot]
    return quick_sort(left) + middle + quick_sort(right)

zip 文件大小:6.54KB