Python实现非线性数据结构-字典、集合、树、图

news/2024/10/25 16:00:20/

非线性数据结构:数据不遵循线性顺序,根据特定的关系或规则来组织数据。 

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


http://www.ppmy.cn/news/1541866.html

相关文章

【CSS3】css开篇基础(4)

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

Mybatis之参数处理

在MyBatis中,参数处理是非常关键的部分,它负责将传入的参数正确映射到SQL语句中 单个简单类型参数 简单类型对于mybatis来说都是可以自动类型识别的: 也就是说对于mybatis来说,它是可以自动推断出ps.setXxxx()方法的。ps.setSt…

springboot080房屋租赁管理系统的设计与实现(论文+源码)_kaic

毕 业 设 计(论 文) 题目:房屋租赁管理系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好…

钉钉录播抓取视频

爬取钉钉视频 免责声明 此脚本仅供学习参考,切勿违法使用下载他人资源进行售卖,本人不但任何责任! 仓库地址: GItee 源码仓库 执行顺序 poxyM3u8开启代理getM3u8url用于获取m3u8文件userAgent随机请求头downVideo|downVideoThreadTqdm单线程下载和…

智创 AI 新视界 -- AIGC 背后的深度学习魔法:从原理到实践

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

【mysql 进阶】2-1 mysql 数据目录

mysql 数据目录 MySQL 服务器的管理信息、业务数据、⽇志⽂件、磁盘缓冲⽂件默认存储在数据⽬录下,数据⽬录⼀般包含以下内容: 数据⽬录下的每个⼦⽬录都是⼀个数据库⽬录,对应服务器管理的⼀个数据库,包括MySQL 安装 成功后创建的…

gitlab项目转移群组

1、背景 项目pa不再使用,只需要备份代码就行。将项目pa从A群组转移到B群组。 2、转移 在群组A项目pa中,设置-通用-高级-转移项目

有关spring,springboot项目的知识点

文章目录 1.Spring基本介绍1.1Spring官网1.2Spring的发展 2.SpringBoot2.1SpringBoot快速入门2.1.1创建SpringBoot工程,并勾选web开发相关依赖2.1.2定义HelloController类,并添加方法helllo,且添加注解2.1.3运行测试 3.HTTP协议3.1HTTP协议的概念3.1.1HTTP的特点 3.2HTTP-请求协…