【Leetcode】python树

0️⃣python数据结构与算法学习路线
学习内容:

  • 基本算法:枚举、排序、搜索、递归、分治、优先搜索、贪心、双指针、动态规划等…
  • 数据结构:字符串(string)、列表(list)、元组(tuple)、字典(dictionary)、集合(set)、数组、队列、栈、树、图、堆等…

树的定义和基本术语

思维导图

在这里插入图片描述

名词定义

在这里插入图片描述
树的结点树=总度数+1(加一个根节点)
树的度:最大节点的度
子树:
在这里插入图片描述

树的分类

普通的树

空树:

没有根节点的树

非空树:

在这里插入图片描述
除了根节点之外,有且只有一个前驱(不满足这个条件的应该称之为网或者图)

有序树:

树的各个子树的顺序是固定的,不能随意改变顺序。

无序树:

树的各个子树的顺序可变。

二叉树:

每个节点最多只能有两个子节点的树称为二叉树(参考m叉树的定义),二叉树是有序树,左右子树的顺序不能改变。二叉树又可以分为满二叉树和完全二叉树。
在这里插入图片描述

二叉树的性质

在这里插入图片描述
2.
在这里插入图片描述
证明:
在这里插入图片描述
3.
在这里插入图片描述
证明过程
在这里插入图片描述

二叉树的存储

在这里插入图片描述
顺序存储: 从上到下,从左到右,顺序存储到数组中
查找孩子和父亲的方法(完全二叉树),这里面的编号是从1开始而不是从0开始
在这里插入图片描述
普通的二叉树使用顺序存储:
在这里插入图片描述
不只是按顺序去存储,而是对应完全二叉树的编号方法进行排序,将没有结点的位置空出来(造成了内存浪费)
链式存储:
在这里插入图片描述
在这里插入图片描述
每个节点有三个域 —— 数据域,左儿子指针域,右兄弟指针域

二叉树的先序 中序 后序遍历

在这里插入图片描述
树的使用是递归的,每一步都是由前一步结果决定
判断顺序
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二叉树的层序遍历

一层一层的遍历
在这里插入图片描述
算法实现:
没了吧

二叉树的遍历序列构造二叉树

只给一种遍历序列会可以对应多个二叉树
在这里插入图片描述

霍夫曼树:
b树:

特殊二叉树

在这里插入图片描述

满二叉树(Full Binary Tree):

除了叶子结点都有两个结点的二叉树
在这里插入图片描述
在这里插入图片描述
例:6的左孩子是12,右孩子是12+1,父节点是3(i是左孩子的话)
使用这个性质进行存储

完全二叉树 (Complete Binary Tree):

满二叉树是完全二叉树的一种特殊情况。如果去掉满二叉树中编号比较大的叶子结点就是完全二叉树
在这里插入图片描述
在这里插入图片描述
解释一下4:1-6是分支节点 7开始是叶子结点
例:
去掉15是完全二叉树,去掉14 15也是完全二叉树,去掉13 14 15还是完全二叉树。

但是如果我们只去掉13就不是完全二叉树,因为这个时候原来编号为14的叶子结点就会变成13,和满二叉树的编号不一样了,只去掉14也不是完全二叉树。(其实就是得按从后往前的顺序全都去掉的满二叉树才是完全二叉树)

二叉排序树

左子树的所有结点小于根节点
右子树的所有结点大于根节点
用来排序查找很方便

平衡二叉树

任何一个结点的左子树和右子树的深度之差不超过1
平衡二叉树相对于不平衡的二叉树就有更高的搜索效率
例:这是一颗平衡二叉树
在这里插入图片描述
50的两个子树一个高度2,一个高度3,不超过1
66的两个子树一个1,一个2,也不超过1
所以满足条件
在这里插入图片描述
这颗二叉树就不平衡

易混的定义

1.度为m说明他至少有一个结点是度为m
在这里插入图片描述
2.
在这里插入图片描述

参考文章:

数据结构基础知识:c++实现
《数据结构与算法之美》学习汇总:C++实现
python数据结构:python实现

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪里摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值