非线性数据结构:数据不遵循线性顺序,根据特定的关系或规则来组织数据。
1.字典:存储键值对,内部使用哈希表实现。时间复杂度是 O(1), 创建、新增、查询、删除键值对,访问值、修改值。 2.集合:无序的、不包含重复元素的数据结构。支持并集、交集、差集。内部使用哈希表实现。添加、删除、检查元素是否存在 3.树:具有层次结构。每个节点有一个值并且可以有0个或多个子节点。 4.图:由节点和连接这些节点的边组成。分为有向图(边有方向)和无向图。
python">''' 数据结构: 线性数据结构、非线性数据结构''''''
非线性数据结构:数据不遵循线性顺序,根据特定的关系或规则来组织数据。
1.字典:存储键值对,内部使用哈希表实现。时间复杂度是 O(1), 创建、新增、查询、删除键值对,访问值、修改值。
2.集合:无序的、不包含重复元素的数据结构。支持并集、交集、差集。内部使用哈希表实现。添加、删除、检查元素是否存在
3.树:具有层次结构。每个节点有一个值并且可以有0个或多个子节点。
4.图:由节点和连接这些节点的边组成。分为有向图(边有方向)和无向图。
'''def fun_dict():dict = {'a':1, "b":2, "c":3}dict['d'] = 4dict['a'] = 11del dict['c']for key, value in dict.items():print(key, value)fun_dict()def fun_set():my_set = {1,2,3}my_set.add(4)my_set.remove(1)print(1 in my_set)my_set1 = {1,2,8,9}union_set = my_set.union(my_set1) # 并集print(union_set)diff_set = my_set.difference(my_set1) # 差集print(diff_set)inter_set = my_set & my_set1 # 交集print(inter_set)
fun_set()class TreeNode():def __init__(self, value=0, left=None, right=None):self.value = valueself.left = leftself.right = right
# 创建二叉树
'''12 34 5
'''
root = TreeNode(1)
root.left = TreeNode(2)
root.right= TreeNode(3)
root.left.left = TreeNode(4)
root.left.right = TreeNode(5)# 遍历二叉树(前序遍历)
def preorder(node):if node:print(node.value)preorder(node.left)preorder(node.right)preorder(root)
执行结果:
a 11
b 2
d 4
False
{1, 2, 3, 4, 8, 9}
{3, 4}
{2}
1
2
4
5
3