Tricks(二十三)—— Python 实现树这种数据结构
普通二叉树
class Node:def __init__(self, point):self.left = Noneself.right = Noneself.point = point
当然也在构造时,传递进来左子树/右子树,如下:
class Node:def __init__(self, left, right, point):self.left = leftself.right = rightself.point = point
可回溯的二叉树
通过维护一个指向父节点的指针实现回溯:
class Node:def __init__(self, point):self.left = Noneself.right = Noneself.parent = Noneself.point = point
此时若想维护,父节点与子节点的互关系(父到子,子到父),需定义如下的成员函数:
def set_left(self, left):self.left = leftleft.parent = self
def set_right(self, right):self.right = rightright.parent = self
- (1)根节点(root)的父节点为空;
- (2)叶节点(leaf)的左子树节点(left)右子树节点,均为空;
- (3)内部节点(internal)的左右子树节点不全为空,父节点不为空;
树功能的拓展
对树功能的拓展,即是引入新的成员变量,以及由此展开的成员函数,例如想在树的迭代构建的过成中,当前节点的深度(depth):
class Node:def __init__(self, point, depth):self.left = Noneself.right = Noneself.point = pointself.depth = depth
depth 参数也是在迭代的过程中进行的指定。
Tricks(二十三)—— Python 实现树这种数据结构相关推荐
- Python零基础入门(二)——Python中常见的数据结构[学习笔记]
目录 1.Number(数字) 2.String(字符串) 3.List(列表) 4.Tuple(元组) 5.Set(集合) 6.Dictionary(字典) 1.Number(数字) Python ...
- python遍历树结构_python 数据结构与算法——树的遍历
1.广度优先遍历 2.深度优先遍历 先序遍历:把根放在最前面 中序遍历:把根放在中间 后序遍历:把根放在后面 # -*- coding: utf-8 -*- """ Cr ...
- python数据结构 树_python 数据结构四 之 二叉树和树
python数据结构教程第四课 树形结构是复杂结构中最简单的一类,这是一类非常重要的结构,在实际中使用广泛,反映了许多计算过程的抽象结构 一.简介 1.树 2.二叉树 二.二叉树和树的抽象数据类型(A ...
- 十二、Python简单数据结构应用(之…
十.Python语言中简单数据结构的应用(之二) ----From a high school student's view to learn Python 关键字: python 列表 堆栈 数据结 ...
- Python入门(二十三)- 文件操作1
二十三.文件操作 23.1 文件基础知识 当程序运行时,变量是保存数据的好方法,但变量.序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中. ...
- 数据结构---二叉平衡排序树的删除
数据结构-二叉平衡排序树的删除 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> typedef struct avlT ...
- 数据结构与算法—二叉排序(查找)树
目录 前言 树 二叉树 二叉排序(搜索)树 概念 构造 主要方法 findmax(),findmin() isContains(int x) insert(int x) delete(int x) 完 ...
- python低通滤波器_[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波
[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波 发布时间:2019-04-28 20:35, 浏览次数:2739 , 标签: Python 该系列文章是讲解Python OpenCV ...
- 决策树(二):CART回归树与Python代码
上一篇介绍了决策树的基本概念,特征划分标准及ID3、C4.5和CART分类树的算法,本文着重对CART回归树的内容进行补充. 本文概览: 首先介绍CART回归树的算法,然后是创建CART回归树的主要步 ...
最新文章
- c# asp.net core取当月第一天和最后一天及删除最后一个字符的多种方法
- SqlDataReader.GetSchemaTable
- 用substr()函数高效的输出一个字符串的所用子串
- 将优化问题转化为决策问题
- 微信摇一摇插件ios_iOS实现微信摇一摇功能
- 怎样用c语言写超市管理程序,C语言超市收银管理系统实现程序.doc
- 03 - const static extern
- Android4.0/Android4.1 WifiStateMachine状态机结构图
- P2421 A-B数对(增强版)
- “我在苹果商店下载了一个诈骗App,损失60万美金!”
- mongodb查询的语法(大于,小于,大于或等于,小于或等于等等)
- echarts单个实例包含多个grid,标题分别居中
- 国图三维不动产创新实践:三维地籍图制作
- oracle临时表空间释放
- 怎么用nginx搭建文件服务器,使用nginx搭建简单文件服务器
- C# 使用NPOI.XSSF对Excel进行操作
- ubuntu + gcc-linaro-交叉编译环境搭建
- Android程序员必装apk
- android patch app,AndroidN,O 加载到patch 以后重启app crash了.
- 3dmax:3dmax的软件两大常用工具之基本三维实体(标准基本体、扩展基本体、复合对象)之详细攻略
热门文章
- Scala学习之 java.net.BindException: 无法指定被请求的地址: Service 'sparkDriver' failed
- 背包问题:从给定的无序、不重复的数组 A 中,取出N个数,使其相加和为M
- 数据挖掘:模型选择——K-means
- tf.read_file和tf.image.decode_jpeg处理图片(转)
- BUNUO自动化框架图
- python之路 -- 并发编程之线程
- 撸.NET Core的正确姿势
- Flask入门之SQLAlchemy数据库连接操作(第15讲)
- 04_过滤器Filter_04_Filter生命周期
- 8051系列单片机软件精确延时研究(二)