Python数据结构-树与树的遍历
树:是一种抽象的数据类型
树的作用:用来模拟树状结构性质的数据集合
树的特点:
- 每个节点有零个或者多个节点
 - 没有父节点的节点,叫做根节点
 - 每一个根节点有且只有一个父节点
 - 除了根节点外,每个节点可以分成多个不相交的子树
 
叶节点和终端节点:度为零的节点
树的种类:无序树和有序树
有序树:(多用链表存储),分为:二叉树、霍夫曼树、B树
加索引可以增加查询的效率,但会影响增删改查的效率
二插树:完全二叉树、满二叉树、平衡二叉树、排序二叉树
二叉树的性质:
- 性质1.在二叉树的第i层至多有2^(i-1)个结点(i>0)
 - 性质2: 深度为k的二叉树至多有2^k - 1个结点(k>0)
 - 性质3: 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;
 - 性质4:具有n个结点的完全二叉树的深度必为 log2(n+1)
 
二叉树的遍历:
广度优先遍历:横向的(层次遍历)
注意:用队列--有的话,添加到队列,没有的创建
深度优先遍历:竖向的(递归)
深度优先遍历正向推理
先序遍历:根左右
中序遍历:左根右
后序遍历:左右根
给出先序和中序求后序:
找出中序中结点的位置得到左右的数值,先序中画出左右的数值,取得下一个节点的值

Python数据结构-树与树的遍历的更多相关文章
- Python数据结构应用6——树
		
数据结构中的树的结点和机器学习中决策树的结点有一个很大的不同就是,数据结构中的树的每个叶结点都是独立的. 树的高度(Height)指叶结点的最大层树(不包含根结点) 一.树的建立 树可以这样定义:一棵 ...
 - python数据结构之树和二叉树(先序遍历、中序遍历和后序遍历)
		
python数据结构之树和二叉树(先序遍历.中序遍历和后序遍历) 树 树是\(n\)(\(n\ge 0\))个结点的有限集.在任意一棵非空树中,有且只有一个根结点. 二叉树是有限个元素的集合,该集合或 ...
 - python数据结构之树(二叉树的遍历)
		
树是数据结构中非常重要的一种,主要的用途是用来提高查找效率,对于要重复查找的情况效果更佳,如二叉排序树.FP-树. 本篇学习笔记来自:二叉树及其七种遍历方式.python遍历与非遍历方式实现二叉树 介 ...
 - python数据结构树和二叉树简介
		
一.树的定义 树形结构是一类重要的非线性结构.树形结构是结点之间有分支,并具有层次关系的结构.它非常类似于自然界中的树.树的递归定义:树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树,否 ...
 - Python 数据结构 树
		
什么是树 数是一种抽象的数据类型(ADT)或是作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合,它是由n(n>1)的有限个节点和节点之间的边组成的一个有层次关系的集合. 树的组成 ...
 - java:数据结构(四)二叉查找树以及树的三种遍历
		
@TOC 二叉树模型 二叉树是树的一种应用,一个节点可以有两个孩子:左孩子,右孩子,并且除了根节点以外每个节点都有一个父节点.当然这种简单的二叉树不能解决让树保持平衡状态,例如你一直往树的左边添加元素 ...
 - python利用Trie(前缀树)实现搜索引擎中关键字输入提示(学习Hash Trie和Double-array Trie)
		
python利用Trie(前缀树)实现搜索引擎中关键字输入提示(学习Hash Trie和Double-array Trie) 主要包括两部分内容:(1)利用python中的dict实现Trie:(2) ...
 - python 根据现有文件树创建文件树
		
# -*- coding: utf-8 -*- import os, errno def fileName(path):#获取文件夹 str = '' for i in range(1,len(pat ...
 - 【Todo】字符串相关的各种算法,以及用到的各种数据结构,包括前缀树后缀树等各种树
		
另开一文分析字符串相关的各种算法,以及用到的各种数据结构,包括前缀树后缀树等各种树. 先来一个汇总, 算法: 本文中提到的字符串匹配算法有:KMP, BM, Horspool, Sunday, BF, ...
 
随机推荐
- Java实现 蓝桥杯VIP 算法训练 矩阵乘方
			
算法提高 矩阵乘方 时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个矩阵A,一个非负整数b和一个正整数m,求A的b次方除m的余数. 其中一个nxn的矩阵除m的余数得到的仍是一个nxn的 ...
 - Java实现洛谷 P2802 回家
			
P2802 回家 时间限制 1.00s 内存限制 125.00MB 题目描述 小H在一个划分成了n*m个方格的长方形封锁线上. 每次他能向上下左右四个方向移动一格(当然小H不可以静止不动), 但不能离 ...
 - Spring Data Jpa Specification 调用Oracle 函数/方法
			
开发框架用的Jpa,数据库是 Oracle. 在开发中难免会遇到需要数据库字段是字符串格式,但是又需要对其进行范围查询(数据库设计问题,后续应避免).那么问题来了, Jpa Specification ...
 - 简述hadoop安装步骤
			
简述hadoop安装步骤 安装步骤: 1.安装虚拟机系统,并进行准备工作(可安装- 一个然后克隆) 2.修改各个虚拟机的hostname和host 3.创建用户组和用户 4.配置虚拟机网络,使虚拟机系 ...
 - CRC循环冗余校验---模2除法解析
			
关于模2除法,网上的人说了一大堆规则和原理,感觉很容易把小白绕进去,下面我只说怎么计算,不说其中的规则和原理.
 - Vue使用js鼠标蜘蛛特效
			
1. 在src下新建文件夹utils,里面新建文件canvas-nest.js,将代码复制进去.(可以自己定义存放路径) !function() { function n(n, e, t) { ret ...
 - Windows下mysql的基础操作
			
1.数据库表操作: - 首先启动mysql服务器,在安装mysql的目录下打开cmd窗口,运行mysql:'mysql.exe -hlocalhost -p3306 -uroot -p123456'; ...
 - @atcoder - AGC026F@ Manju Game
			
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个含 N 个数的序列,Alice 与 Bob 在博弈.Al ...
 - Java——String类(常用类)
			
一.String类——描述字符串 常用的方法简单介绍: 1.charAt() 获取对应位置的字符 2.length() 获取字符串的长度 3.concat() 在字符串的尾部追加内容-----相当于连 ...
 - DML_Modifying Data Through Table Expressions_UPDATE
			
DML_Modifying Data Through Table Expressions_UPDATE之前也学习过使用CTE,再来泛泛的学习下,最后将会将一些书籍上或学习到的CTE来个小结 /* Mi ...