李升伟 整理
数据结构可以用Python实现。Python提供了多种内置数据结构,如列表(list)、元组(tuple)、集合(set)、字典(dict)等。此外,Python的标准库还包含一些高级数据结构,如collections 模块中的deque 、defaultdict 、Counter等。
以下是一些常见数据结构及其Python实现示例:
1. 数组/列表(List):
Python的列表类似于动态数组,可以存储不同类型的元素。
python
my_list = [1, 2, 3, 4, 5]
2. 栈(Stack):
可以使用列表来实现栈,遵循后进先出(LIFO)原则。
python
stack = []
stack.append(1) # 入栈
stack.append(2)
stack.pop() # 出栈,返回2
3. 队列(Queue):
可以使用collections.deque 来实现队列,遵循先进先出(FIFO)原则。
python
from collections import deque
queue = deque()
queue.append(1) # 入队
queue.append(2)
queue.popleft() # 出队,返回1
4. 链表(Linked List):
可以自定义类来实现链表。
python
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
return
last_node = self.head
while last_node.next:
last_node = last_node.next
last_node.next = new_node
def print_list(self):
current = self.head
while current:
print(current.data, end=" -> ")
current = current.next
print("None")
ll = LinkedList()
ll.append(1)
ll.append(2)
ll.print_list() # 输出: 1 -> 2 -> None
5. 树(Tree):
可以自定义类来实现树结构。
python
class TreeNode:
def __init__(self, data):
self.data = data
self.children = []
def add_child(self, child):
self.children.append(child)
root = TreeNode("A")
child1 = TreeNode("B")
child2 = TreeNode("C")
root.add_child(child1)
root.add_child(child2)
6. 图(Graph):
可以使用字典来实现图结构。
python
graph = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [],
'E': ['F'],
'F': []
}
7. 堆(Heap):
可以使用heapq模块来实现堆。
python
import heapq
heap = []
heapq.heappush(heap, 3)
heapq.heappush(heap, 1)
heapq.heappush(heap, 2)
heapq.heappop(heap) # 返回1
8. 哈希表(Hash Table):
Python的字典(dict)就是基于哈希表实现的。
python
hash_table = {}
hash_table['key1'] = 'value1'
hash_table['key2'] = 'value2'
print(hash_table['key1']) # 输出: value1
这些是Python中实现常见数据结构的一些基本示例。根据具体需求,你可以进一步扩展和优化这些实现。
(来自deepseek问答。)