【Python】数据结构有Python版吗?
李升伟 整理
数据结构可以用Python实现。Python提供了多种内置数据结构,如列表(list)、元组(tuple)、集合(set)、字典(dict)等。此外,Python的标准库还包含一些高级数据结构,如collections模块中的deque、defaultdict、Counter等。
以下是一些常见数据结构及其Python实现示例:
1. 数组/列表(List):
Python的列表类似于动态数组,可以存储不同类型的元素。
my_list = [1, 2, 3, 4, 5]
2. 栈(Stack):
可以使用列表来实现栈,遵循后进先出(LIFO)原则。
stack = []
stack.append(1) # 入栈
stack.append(2)
stack.pop() # 出栈,返回2
3. 队列(Queue):
可以使用collections.deque来实现队列,遵循先进先出(FIFO)原则。
from collections import deque
queue = deque()
queue.append(1) # 入队
queue.append(2)
queue.popleft() # 出队,返回1
4. 链表(Linked List):
可以自定义类来实现链表。
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):
可以自定义类来实现树结构。
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):
可以使用字典来实现图结构。
graph = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [],
'E': ['F'],
'F': []
}
7. 堆(Heap):
可以使用heapq模块来实现堆。
import heapq
heap = []
heapq.heappush(heap, 3)
heapq.heappush(heap, 1)
heapq.heappush(heap, 2)
heapq.heappop(heap) # 返回1
8. 哈希表(Hash Table):
Python的字典(dict)就是基于哈希表实现的。
hash_table = {}
hash_table['key1'] = 'value1'
hash_table['key2'] = 'value2'
print(hash_table['key1']) # 输出: value1
这些是Python中实现常见数据结构的一些基本示例。根据具体需求,你可以进一步扩展和优化这些实现。
(来自deepseek问答。)
原文地址:https://blog.csdn.net/m0_65595995/article/details/146352584
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/596115.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/596115.html 如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!