一、树

1、定义:由n个有限节点组成一个具有层次关系的集合,看起来像一颗倒挂的树,特点:
2、特点:
a、每个节点有0个或多个子节点
b、没有父节点的节点称为根节点(A)
c、每一个非根节点有且只有一个父节点(eg:B和C的父节点为A;D和E和F的父节点为B)
eg:下图的F节点有2个父节点,不能称为树结构

d、除了根节点外,每个子节点可以分为多个不相交的子树

二、树的术语

1、节点的度:一个节点含有的子树的个数(节点A的度度为2,B的度为3,D的度为1,I的度为0)
2、树的度:树中所有节点的度的最大值(度为3)
3、叶节点:度为0的节点(I、J、K)
4、子节点:一个节点含有的子树的根节点称为该节点的子节点(B是A的子节点;D是B的子节点;不能说是D是A的子节点)
5、父节点:若一个节点有子节点,那么这个节点就是其子节点的父节点
6、兄弟节点:具有相同父节点的节点互称兄弟节点

7、堂兄弟节点:在同一层的节点互称堂兄弟节点

8、祖先节点:从根到该节点所经路径上的所有节点(A、B、D都是I的祖先节点)

9、子孙节点:以某节点为根的子树中的所有节点(所有节点都是A的祖先节点)
10、节点层次:根节点层次为1,其他节点层次是父节点的层次加1

11、树的深度:树中所有节点的层次的最大值(深度为4)
12、森林:多颗不相交的树的集合

三、二叉树

1、二叉树:每个节点最多含有两个子树的树称为二叉树

2、完全二叉树:除了最底层外,其他各层的节点数目均达到最大值,且最底层的节点应从左往右紧密排列

3、满二叉树:所有叶节点都在最底层的完全二叉树

4、二叉搜索树:对于一个节点,它的左子树上的所有节点的值都比它小,右子树上的所有节点的值都比它大

四、二叉树的存储结构

1、顺序存储: 从上往下,从左往右的将树存到顺序表中
2、优点: 遍历方便,可以用索引来表示节点间的关系
3、缺点: 可能会对存储空间造成极大的浪费

遍历结果为:5,4,C,None,None,G,H,None,None,None,None,M,N,F,O

4、适用于存完全二叉树
5、链式存储: 每个节点具有 左指针域, 数据域, 右指针域, 以此来连接
优点:不会浪费空间

遍历结果为:5,4,C,G,H,M,N,F,O

数据结构与算法——树与二叉树详细分享相关推荐

  1. 数据结构与算法——树和二叉树***

    第五章 :树和二叉树 树和图是两种重要的非线性结构.线性结构中结点具有唯一前驱和唯一后继的关系,而非线性结构中结点之间的关系不再具有这种唯一性.其中,树形结构中结点间的关系是前驱唯一而后继不唯一,即元 ...

  2. Python__数据结构与算法——树、二叉树(实现先、中、后序遍历)

    目录 一.树 二.二叉树 树和前面所讲的表.堆栈和队列等这些线性数据结构不同,树不是线性的.在处理较多数据时,使用线性结构较慢,而使用树结构则可以提高处理速度.不过,相对于线性的表.堆栈和队列等线性数 ...

  3. 数据结构与算法 | 树与二叉树

    树的概念 二叉树的概念 树的概念和结构 树是一种非线性的数据结构,它是由n个有限结点组成一个具有层次关系的集合,把它叫做树是因为它看起来像一棵倒挂的树,如图所示 有一个特殊的结点,称为根节点,根节点没 ...

  4. 数据结构与算法:树 二叉树入门(一)

    Tips: 采用java语言,关注博主,底部附有完整代码 工具:IDEA 本系列介绍的是数据结构: 树 这是第1篇目前计划一共有12篇: 二叉树入门 本篇 顺序二叉树 线索化二叉树 堆排序 赫夫曼树( ...

  5. 数据结构与算法--死磕二叉树

    死磕二叉树 近一年都比较关注算法相关的知识,也刷了不少题,之前的文章中大多也是算法相关的文章,但是感觉每次遇到树相关的题型都不能应对自如,因此还是有必要在相关知识上下功夫,因此有此次总结,以下是所有树 ...

  6. 【数据结构Note5】- 树和二叉树(知识点超细大全-涵盖常见算法 排序二叉树 线索二叉树 平衡二叉树 哈夫曼树)

    文章目录 5.1 树和二叉树引入 5.1.1 树的概念 5.1.2 树的表示 5.1.3 树中基本术语 5.2 二叉树 5.2.1 概念 5.2.2 二叉树的性质 5.2.3 特殊的二叉树 5.2.4 ...

  7. Java数据结构与算法——树(基本概念,很重要)

    声明:码字不易,转载请注明出处,欢迎文章下方讨论交流. 有网友私信我,期待我的下一篇数据结构.非常荣幸文章被认可,也非常感谢你们的监督. 前言:Java数据结构与算法专题会不定时更新,欢迎各位读者监督 ...

  8. 数据结构与算法-- 广度优先打印二叉树

    广度优先打印二叉树 题目:从上往下打印出二叉树的每一个节点,同一层节点按照从左到右顺序打印,例如下图中二叉树,依次打印出是8,6,10,5,7,9,11 如上题中二叉树的节点定义我们用之前文章 二叉树 ...

  9. 数据结构实验二 树和二叉树的实现

    广州大学学生实验报告 开课实验室:计算机科学与工程实验(电子楼418A)     2019年5月13日 学院 计算机科学与教育软件学院 年级.专业.班 计算机科学与技术172班 姓名 学号 17061 ...

最新文章

  1. 解决Oracle clob字段数据过大问题
  2. 大剑无锋之拦截器和过滤器的区别【面试推荐】
  3. OpenCV, 名校机器学习相关课程
  4. duration java_Java Duration类| toHours()方法与示例
  5. Reeder 5 for Mac(RSS阅读器)
  6. php掷骰子小游戏代码,C语言实现掷骰子游戏代码及解析
  7. 双向链表学生管理系统(0723)
  8. 【机器学习笔记】【随机森林】【回归器】【填充缺失值】
  9. 图像处理问题解决师——求取每个颗粒到其他颗粒边缘的最近距离
  10. Maven中央仓库地址整理
  11. 2022计算机考研统考的院校有哪些,2022考研初试科目都有哪些?
  12. HDU 5155 Harry And Magic Box
  13. YOLOv3庖丁解牛(一):网络结构
  14. typecho反序列化漏洞(详细过程)
  15. 前端工具字典,为你开发路上披荆斩棘
  16. BES(恒玄)蓝牙平台EQ 调试和设定
  17. Flash从入门到实践系列(一):环境安装
  18. 是要成为海贼王的男人——日记4.23
  19. 盘点机需要连接网络吗
  20. 数据中心运维管理技能的重要性

热门文章

  1. 未定义标识符 stringc/c++(20)_20款丰田酷路泽5700绝版现车最后促销
  2. JAVA控件属性列表_Gradle获取项目属性列表
  3. 在线机房改造类项目建设难点的研究
  4. 数据中心节能的13个有用小知识
  5. 数据中心新认证出现,UPTIME面临挑战
  6. vue在js上处理后台返回的数组_vuejs 根据后台返回数组,渲染图片路径
  7. AI:2020年6月22日北京智源大会演讲分享之10:40-11:30 Zoubin教授《Probabilistic Machine Learning and AI》
  8. Windows PowerShell:Windows PowerShell的简介、入门、使用方法之详细攻略
  9. ML之ME/LF:机器学习中的模型评估指标/损失函数(连续型/离散型)的简介、损失函数/代价函数/目标函数之间区别、案例应用之详细攻略
  10. HDFS的读文件、写文件过程