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)
6.54KB
文件大小:
评论区