普通二叉树

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 实现树这种数据结构相关推荐

  1. Python零基础入门(二)——Python中常见的数据结构[学习笔记]

    目录 1.Number(数字) 2.String(字符串) 3.List(列表) 4.Tuple(元组) 5.Set(集合) 6.Dictionary(字典) 1.Number(数字) Python ...

  2. python遍历树结构_python 数据结构与算法——树的遍历

    1.广度优先遍历 2.深度优先遍历 先序遍历:把根放在最前面 中序遍历:把根放在中间 后序遍历:把根放在后面 # -*- coding: utf-8 -*- """ Cr ...

  3. python数据结构 树_python 数据结构四 之 二叉树和树

    python数据结构教程第四课 树形结构是复杂结构中最简单的一类,这是一类非常重要的结构,在实际中使用广泛,反映了许多计算过程的抽象结构 一.简介 1.树 2.二叉树 二.二叉树和树的抽象数据类型(A ...

  4. 十二、Python简单数据结构应用(之…

    十.Python语言中简单数据结构的应用(之二) ----From a high school student's view to learn Python 关键字: python 列表 堆栈 数据结 ...

  5. Python入门(二十三)- 文件操作1

    二十三.文件操作 23.1 文件基础知识 当程序运行时,变量是保存数据的好方法,但变量.序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中. ...

  6. 数据结构---二叉平衡排序树的删除

    数据结构-二叉平衡排序树的删除 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> typedef struct avlT ...

  7. 数据结构与算法—二叉排序(查找)树

    目录 前言 树 二叉树 二叉排序(搜索)树 概念 构造 主要方法 findmax(),findmin() isContains(int x) insert(int x) delete(int x) 完 ...

  8. python低通滤波器_[Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波

    [Python图像处理] 二十三.傅里叶变换之高通滤波和低通滤波 发布时间:2019-04-28 20:35, 浏览次数:2739 , 标签: Python 该系列文章是讲解Python OpenCV ...

  9. 决策树(二):CART回归树与Python代码

    上一篇介绍了决策树的基本概念,特征划分标准及ID3、C4.5和CART分类树的算法,本文着重对CART回归树的内容进行补充. 本文概览: 首先介绍CART回归树的算法,然后是创建CART回归树的主要步 ...

最新文章

  1. c# asp.net core取当月第一天和最后一天及删除最后一个字符的多种方法
  2. SqlDataReader.GetSchemaTable
  3. 用substr()函数高效的输出一个字符串的所用子串
  4. 将优化问题转化为决策问题
  5. 微信摇一摇插件ios_iOS实现微信摇一摇功能
  6. 怎样用c语言写超市管理程序,C语言超市收银管理系统实现程序.doc
  7. 03 - const static extern
  8. Android4.0/Android4.1 WifiStateMachine状态机结构图
  9. P2421 A-B数对(增强版)
  10. “我在苹果商店下载了一个诈骗App,损失60万美金!”
  11. mongodb查询的语法(大于,小于,大于或等于,小于或等于等等)
  12. echarts单个实例包含多个grid,标题分别居中
  13. 国图三维不动产创新实践:三维地籍图制作
  14. oracle临时表空间释放
  15. 怎么用nginx搭建文件服务器,使用nginx搭建简单文件服务器
  16. C# 使用NPOI.XSSF对Excel进行操作
  17. ubuntu + gcc-linaro-交叉编译环境搭建
  18. Android程序员必装apk
  19. android patch app,AndroidN,O 加载到patch 以后重启app crash了.
  20. 3dmax:3dmax的软件两大常用工具之基本三维实体(标准基本体、扩展基本体、复合对象)之详细攻略

热门文章

  1. Scala学习之 java.net.BindException: 无法指定被请求的地址: Service 'sparkDriver' failed
  2. 背包问题:从给定的无序、不重复的数组 A 中,取出N个数,使其相加和为M
  3. 数据挖掘:模型选择——K-means
  4. tf.read_file和tf.image.decode_jpeg处理图片(转)
  5. BUNUO自动化框架图
  6. python之路 -- 并发编程之线程
  7. 撸.NET Core的正确姿势
  8. Flask入门之SQLAlchemy数据库连接操作(第15讲)
  9. 04_过滤器Filter_04_Filter生命周期
  10. 8051系列单片机软件精确延时研究(二)