数据结构2|青训营笔记

29 阅读1分钟

栈和队列

栈:先进后出(FILO)的数据结构

队列:先进先出(FIFO)的数据结构

栈:提供push pop等接口。不是容器,而是可更换实现底层容器的容器适配器

二叉树

二叉树的种类:

  1. 满二叉树:二叉树,只有度为0和度为2的结点,且度为0的结点在同一层,即为满二叉树:深度为k,有2^k-1个结点
  2. 完全二叉树:除了最底层结点未充满外其余层数结点都达到最大值的二叉树,且最底层结点都在左侧。或者相同层数的满二叉树剔除了最底层右侧的若干结点,得到的就是完全二叉树。

优先队列是一个堆,堆就是一棵完全二叉树。

  1. 二叉搜索树,,每个结点有数值的二叉树,且是一个有序树。满足:
  • 左子树结点值小于根结点
  • 右子树结点值大于根结点
  • 左右子树递归也是二叉搜索树
  1. 平衡二叉搜索树

AVL树,左右子树高度差不超过1,左右子树都是一棵平衡二叉树

二叉树的存储方式

连式存储和顺序存储

二叉树的遍历方式

深度优先遍历和广度优先遍历

  1. 深度优先遍历,回溯法实现,先走到叶子结点,再一步步回退。
  2. 广度优先遍历,队列实现,一层层遍历,出队一个结点,入队它的左右子树根结点。