数据结构-Day_2

Posted 坏坏-5

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构-Day_2相关的知识,希望对你有一定的参考价值。


文章参考郝斌老师的《数据结构》视频

非线性结构

  • 定义:
    • 有且只有一个成为根的节点
    • 有若干互不相交的子树,这些子树本身也是一颗树
  • 树有由节点和边组成,每个节点只有一个父节点,可以有多个子节点,根节点没有父节点
    • 节点
    • 父节点
    • 子节点
    • 深度:从根结点到最底层节点的层数
    • 叶子结点:没有子节点的节点
    • 度:子节点的个数
  • 一般树
    • 任意一个节点的子节点数都不受限制
  • 二叉树
    • 任意一个节点的子节点个数最多两个,且子节点的位置不可更改
    • 一般二叉树
    • 满二叉树:在不增加二叉树层级的前提下,无法再多添加一个节点
    • 完全二叉树:只删除了满二叉树最底层嘴右边的连续若干个节点
  • 森林
    • n个互不相交的树的集合

树的存储

  • 二叉树的存储
    • 连续存储:完全二叉树
      • 优点:方便查找某个节点的父节点和子节点
      • 缺点:好用内存空间大
    • 链式存储
  • 一般树的存储
    • 双亲表示法
      • 便于求父节点
    • 孩子表示法
      • 便于求子节点
    • 双亲孩子表示法
      • 求父节点和子节点都方便
    • 二叉树表示法
      • 把普通树转换为二叉树来存储
      • 保证任意一个节点的左指针域指向它的第一个孩子,右指针域指向它的兄弟

二叉树的操作

  • 遍历
    • 线序遍历:最先访问根节点
      • 先访问根节点
      • 再先序访问左子树
      • 最后先序访问右子树
    • 中序遍历:中间访问根节点
      • 中序遍历左子树
      • 再访问根节点
      • 中序遍历右子树
    • 后续遍历:最后访问根节点
      • 中序遍历左子树
      • 中序遍历右子树
      • 再访问根节点
  • 通过先序和中序或者中序和后续才可以唯一确认一个二叉树,通过先序和后序不能确认还原原始二叉树

二叉树

【二叉树程序参考】

因为数据结构的考试范围到此,所以之后的没有再学习,以后如果有再学习,会继续补上!


以上内容均属原创,如有不详或错误,敬请指出。

以上是关于数据结构-Day_2的主要内容,如果未能解决你的问题,请参考以下文章

day07(集合)

day01_08.三大控制结构

VSCode 配置 用户自定义代码片段 自定义自动代码补充

day18_(面向对象初识)

Java学习(Day 37)

Day04_Java basic