树结构

1. 树结构概述

1.1 什么是树

上面就是一棵树,简单来讲就是各个节点 “一对多” 的关系

(我们可以看成一颗倒置的树)

1.2 为什么要使用树

线性结构中删除元素和查找元素的缺陷,在树结构中能得到解决

如:线性结构中数组-虽然查找元素方便快捷(通过下标),但是删除元素非常麻烦

​ 链表-虽然删除元素和插入元素方便,但是查找元素非常不方便

1.3 树的基本概念

根节点:树中唯一一个没有父节点的节点(一般最上面一个就是根节点)

双亲节点:俗称父节点,“一对多” 中的"一"就是双亲节点

子节点:“一对多” 中的多就是子节点节点

路径:节点到节点之间的一条通路

节点的度:节点拥有的子节点个数就是度(树的度-所有节点度的最大值)

节点的权:每一个节点都有一个对应的数值,这个数字就是权

叶子结点:没有子节点的节点就是叶子结点(一般在树最低端,有多个)

子树:树中可以切割出来的树就是子树。下图就是整个树的一颗子树

层:如下图表示树的1-4层

树的高度(深度):树的最大层数,如上图树的高度为4

森林:多颗树构成森林

【两分钟带你了解树】数据结构04-树结构的概述相关推荐

  1. scara机器人dh参数表_两分钟带你了解机器人标定的因素

    为什么机器人需要标定? 影响机器人本体精度因素分为两大类:运动学因素--加工误差.机械公差/装配误差.减速器精度.减速器空程等:动力学因素--质量.惯性张量.摩擦力.关节柔性.连杆柔性. 机器人本体的 ...

  2. 两分钟带你彻底明白机器学习中的过采样和欠采样是什么意思?

    观点1 是不同数据有不同定义,可分为空间/非空间数据.空间数据指空间上邻近的数据含有相关信息,可以用信号处理滤波的方法提取出这些相关信号,比如图像,声音.非空间数据指数据不是空间上的邻居,不能提取空间 ...

  3. 两分钟带你了解分账系统收费标准

    随着大数据.人工智能.云计算等新兴技术愈发成熟,各行各业数字化.智能化改造升级既是大势所趋也是顺势而为.包括电商行业.共享行业.商业综合体.景区等许多业态都纷纷接入分账系统,助力自身业务进行转型升级. ...

  4. js一个按钮弹出两个按钮_车内常见按钮,你却一个不认识?一分钟带你认识车内常见按钮...

    导读:车内常见按钮,你却一个不认识?一分钟带你认识车内常见按钮 各位点开这篇文章的朋友们,想必都是很高的颜值吧,我们真的是很有缘哦,小编每天都会给大家带来不一样的汽车资讯,如果对小编的文章或者其他的什 ...

  5. 五分钟学会python函数_五分钟带你搞懂python 迭代器与生成器

    前言 大家周末好,今天给大家带来的是Python当中生成器和迭代器的使用. 我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一种新的获取数据的方法.对于获取数据的方法而言,我们会一种就 ...

  6. 区块链构架就是造房子!10分钟带你走遍构建全程

    你是否有这种感觉,虽然零零散散看过不少区块链知识,但还是感觉对区块链很陌生,也没有形成自己的知识结构.   本文作者Taylor Pearson,是The End of Jobs专栏作家.企业家,过去 ...

  7. MySQL数据库——5分钟带你了解日志管理、数据备份与恢复!!!

    MySQL数据库--5分钟带你了解日志管理.数据备份与恢复!!! 前言 一.MySQL日志管理 1.1 日志的分类 1)错误日志 2) 通用查询日志 3) 二进制日志(binlog) 4) 慢查询日志 ...

  8. 5分钟带你读「大清」微积分!160多年前清朝数学家撰写文言文版高等数学

     视学算法报道   编辑:小咸鱼 好困 [新智元导读]你有见过160多年前清朝数学家写的微积分书吗?这可能是最难懂的高数教材了,堪称天书!近日,网上流传着一本清朝的微积分课本,其中的所有数学表达式都是 ...

  9. java编程石头剪刀布图片_石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源...

    原标题:石头.剪刀.布!10分钟带你打开深度学习大门,代码已开源 沉沉 发自 宇宙中心 量子位 出品 | 公众号 QbitAI 深度学习技术的不断普及,越来越多的语言可以用来进行深度学习项目的开发,即 ...

最新文章

  1. 在CentOS 6.x上安装luajit 2.0.4
  2. android5.0(Lollipop) BLE Peripheral深入理解系统篇之提高篇
  3. oracle中快速复制数据表(创建数据表)
  4. mysql galera cluster实现vip_2019年学MySQL,最佳的10本新书
  5. PowerShell删除Exchange 2010邮件的正确姿势
  6. qt下设置按钮不接收键盘鼠标但能响应 clicked()信号
  7. linux c read函数返回值,Linuxc - GNU Readline 库及编程简介
  8. 【转】linux常用命令:find、grep
  9. C++_Hash容器总结
  10. 最优化算法——常见优化算法分类及总结
  11. csv交换到excel
  12. 实战干货 | 这位成功转型机器学习的老炮,想把他多年的经验分享给你
  13. 用Python做出日历
  14. freeswitch呼叫中心之百度MRCP语音合成识别环境搭建
  15. MATLAB--微分方程
  16. 闲置台式机+文件服务器,闲置电脑打造NAS:安装群晖NAS系统
  17. MATLAB中nargin函数的用法nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常可以用它来设定一些默认值。如下例所示: 函数文件 examp.m
  18. 7 c4d r20对win_OC渲染器Octane Render V4.0-RC7-R4 for C4D R15-R19-R20 Win/Mac
  19. HBuilder制作英雄皮肤抽奖小游戏
  20. Xcode4.3.2修改默认公司名称

热门文章

  1. 吴良超 融合 cnn+lstm
  2. python 数组基本用法
  3. MCMC笔记Metropilis-Hastings算法(MH算法)
  4. MATLAB实战系列(三十七)-MATLAB基于PQ解耦风电场并网潮流计算
  5. 从C语言的角度重构数据结构系列(十二)-C语言判断语法详解(ifswitch)
  6. Tableau系列之圆环图制作
  7. wince6.0远程控制工具_【创新创效】门架业务主动监测工具和远程控制电源开关...
  8. AI算法又整新活,去海边跳一支舞!
  9. LeetCode-数组-35. 搜索插入位置
  10. 图解一维卷积层(PyTorch)