Python数据结构之树形结构——数组存储
Python数据结构之树形结构——数组存储
- 树:一种非线性结构,主要使用链表来存储,也可以使用数组存储。
- 本代码使用两种数组
元素数组:0,6,3,5,4,7,8,9,2
由于 0 索引不存储元素,所以用0代替
树数组: [0]*16
代码部分
- 基本元素定义
data_array = [0, 6, 3, 5, 4, 7, 8, 9, 2]
tree_array = [0] * 16
- 创建树结构
def create_tree():for i in range(1, len(data_array)):level = 1while tree_array[level] != 0:if data_array[i] > tree_array[level]:level = level * 2 + 1else:level = level * 2tree_array[level] = data_array[i]
- 总结:全部代码
data_array = [0, 6, 3, 5, 4, 7, 8, 9, 2]
tree_array = [0] * 16def create_tree():for i in range(1, len(data_array)):level = 1while tree_array[level] != 0:if data_array[i] > tree_array[level]:level = level * 2 + 1else:level = level * 2tree_array[level] = data_array[i]if __name__ == '__main__':create_tree()print("数组中的数据: ", data_array)print("数组保存的二叉树数据: ", tree_array)
Python数据结构之树形结构——数组存储相关推荐
- js树形结构数组扁平化
js树形结构数组扁平化 1. 树形结构 ---- > 扁平化数据 一.树形结构 ---- > 扁平化数据 (数据) const newData: any = [{"id" ...
- 数据结构学习——树形结构之递归遍历二叉树
目录 一. 什么是二叉树 二. 二叉树分类 2.1.完全二叉树 2.2.满二叉树 2.3.扩充二叉树 2.4.平衡二叉树 三. 二叉树的应用场景 四. 遍历方式 五. 为什么要研究遍历 六. 前序遍历 ...
- 非线性数据结构之树形结构
树形结构是一层次的嵌套结构. 一个树形结构的外层和内层有相似的结构, 所以这种结构多可以递归的表示.经典数据结构中的各种树状图是一种典型的树形结构:一颗树可以简单的表示为根, 左子树, 右子树. ...
- 7.连连看的数据结构与算法(数组存储和图的邻接矩阵存储)。
存储连连看地图可以用数组存储,也可以用把地图当做图来处理,用邻接矩阵来存储. 下面展示这两种方法的区别: 初始化图中边的算法思想: 其中有使用typedef语句定义数组类型https://www.cn ...
- 数据结构(4)树形结构——二叉树(概述、前序、中序、后序、层序遍历JAVA实现)
目录 4.1.树 4.2.二叉树 4.2.1.概述 4.2.3.存储结构 4.2.3.遍历 1.逻辑简介 2.代码示例 4.1.树 树,由n(n≥0)个有限节点和边组成一个具有层次关系的数据结构.树需 ...
- 数据结构--图--图的数组存储表示,深度优先搜索遍历和广度优先搜索遍历
图有四种存储结构:数组,邻接表,十字链表,邻接多重表.下面以数组为存储结构来实现图的深度优先搜索遍历和广度优先搜索遍历.其中广度优先搜索遍历中有用到STL中的queue,注意头文件的包含.具体代码如下 ...
- 大话数据结构13:二叉树 数组存储
基础介绍 对于完全二叉树 父节点位置与子节点位置 i 与 2*i +1 前序遍历 打印函数在前 中序遍历 打印函数在中 后序遍历 打印函数在后 #include "stdio.h" ...
- 【数据结构】树形结构
文章目录 一 树的逻辑特征 二 树型结构概述 一 树型结构的基本术语 三 树的递归性 一 树形结构示意图 二 实例 1 定义类去封装 2 初始化 3 清除函数 4 查询节点 5 插入节点 6 删除节点 ...
- php树形结构数组转化
/*** @param array $list 要转换的结果集* @param string $pid parent标记字段* @param string $level level标记字段*/ fun ...
最新文章
- 「mysql优化专题」单表查询优化的一些小总结,非索引设计(3)
- C++用顶层函数重载操作符(三)用友元优化
- ES6 的新特性总结
- 3 .6 .5 优化Ad-Hoc工作负载
- SUSE 开启ssh、telnet
- 无法连接NVIDIA驱动:NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver
- ajaxsubmit php上传文件,使用ajaxSubmit方法实现多文件上传(异步)
- 位图转矢量图工具,快和模糊图片说白白
- PPT 动画模板使用技巧
- HP Socket Pack笔记
- HDU - 6438 Buy and Resell (贪心 + 优先队列)
- python echarts城市热力图_echarts绘制各省、市、区的热力图
- JSON转String
- html3d旋转效果相册,HTML5css3:3D旋转木马效果相册
- 【Autoware规控】mpc_follower模型预测控制节点
- 我爱赚钱吧:SEO的好处有哪些?
- pytorch rnn 实现手写字体识别
- JS - 利用performance.timing进行性能分析
- AttributeError: 'bytes' object has no attribute '__dict__'
- vue 上传图片 base64图片无法显示的问题
热门文章
- HIVE学习系列——windows Hadoop安装(上)
- cx_oracle安装教程,Python 安装 cx_Oracle
- cannot find a java se sdk installed at path_SDK管理器找不到Java
- xml 转 excel 和xml 转excel 的 思路描述
- ruoyi笔记0-尝试启动ruoyi
- 升级 Elasticsearch
- QQ(腾讯)-群空间-数据库设计
- java判断数据库是否存在_java判断数据库是否存在的方法
- 虚幻引擎3(Unreal Engine 3)概要
- SSCOM3.2无法保存窗口的问题的解决