美文网首页
数据结构队列,栈,链表,树,图的概要

数据结构队列,栈,链表,树,图的概要

作者: 最美的谣言 | 来源:发表于2018-06-04 09:26 被阅读0次

(本文是根据网络视频做的笔记,更新)
数据结构用得少,经常学了忘,忘了学,这次干脆做个笔记。主要的目的是列个大纲,写出基本概念,便于以后快速记忆与查找。

一)数据结构之队列

  1. 什么队列
    队列就是FIFO(first in first out)的数据结构
  2. 队列的种类
    普通队列和环形队列(常用)

二)数据结构之栈

  1. 什么是栈
    栈就是LIFO(last in first out)的数据结构

三)数据结构之线性表(链表)

  1. 什么是线性表
    线性表是n个数据元素(可以很复杂)的有限序列。

  2. 线性表的分类


    image.png

四)数据结构之树

  1. 什么是树
    树是节点的有限集合
  2. 理解孩子,双亲,度,叶子(终端节点),根(非终端节点),有序树,无序树的概念。
image.png

什么是双亲?
双亲是指一个节点,表示父节点,注意叫法的问题。如B,C,D的双亲都是A。

什么是孩子?
对于B来说,E,F都是B的孩子。

什么是度?
指某以节点的直系孩子数,如A的度就是3,他有B,C,D三个孩子,再如B的度是2,H的度为0。

什么是叶子?
就是终端节点,表示没有孩子的节点。如C,E,F,G,H。

什么是根?
非终端节点,表示有孩子的节点。如A,B,D

什么是有序树,无序树?
这是相对的概念,比如E,F交换顺序而不影响逻辑,那么就是无序树,否则就是有序树。

什么是祖先?
节点的一直往上的节点,如对于E来说,B,A就是他的祖先。对于G来说,D,A就是他的祖先。

什么是子孙?
节点一直往下的节点。如对与A来说,下方所有的节点就是他的子孙。对于D来说,G,H是他的子孙。

什么是层?
本图可以看到,有3层。

什么是节点深度?
在第一层的节点的深度就是1,如A的深度是1
在第二层的节点的深度就是2,如B,C,D的深度是2
在第三层的节点的深度就是3,如E,F,G,H的深度是3

什么是树的深度?
节点的最大深度,就是层数,即3。

二叉树

  1. 什么是二叉树?
    所有节点的度都小于等于2。
image.png
  1. 二叉树的遍历?


    image.png

二叉搜索树(二叉查找树、有序二叉树、排序二叉树)

image.png
  1. 什么是二叉搜索树?
    空树或者满足特性的树

  2. 二叉搜索树的特性?

  • 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;
  • 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值;
  • 任意节点的左、右子树也分别为二叉查找树;
  • 没有键值相等的节点。

平衡二叉树(AVL树)

image.png
  1. 什么是平衡二叉树?
    即平衡二叉搜索树,也叫AVL树

  2. AVL树的特性?
    空树或满足

  • 它的左右两个子树的高度差的绝对值不超过1
  • 左右两个子树都是一棵平衡二叉树

红黑树

  1. 什么是红黑树?
    红黑树本质上是一种二叉查找树,但它在二叉查找树的基础上额外添加了一个标记(颜色)

  2. 红黑树的特性?


    image.png
  • Every node is either red or black
  • The root is black
  • Every leaf (NIL) is black
  • If a node is red, then both its children are black
  • For each node, all simple paths from the node to descendant leaves contain the same number of black nodes
    翻译:
    每个节点要么是红色,要么是黑色;
    根节点永远是黑色的;
    所有的叶节点都是黑色的,注意这里说叶子节点是指上图中的 NIL 节点;
    每个红色节点的两个子节点一定都是黑色;
    从任一节点到其子树中每个叶子节点的路径都包含相同数量的黑色节点;

(五)数据结构之图

(概念比较多,整理更新中。。。)

相关文章

  • 数据结构

    数据结构 队列&栈&链表&集合&hash表&树&图 队列 先进先出 栈 先进后出 链表 单向链表 双向链表 循环链...

  • 数据结构笔面试总结

    涉及的几个部分数据结构部分数组、栈、链表、队列、树、图 数组 数组是最简单、也是使用最广泛的数据结构。栈、队列等其...

  • 2021-02-18 假期刚过,面试你准备了HashMap吗

    程序的本质是数据结构和算法(执行逻辑)数组栈队列链表树散列表堆图 图解HashMap 数组 + 链表 + 红黑树 ...

  • 前端面试20题

    1:数据结构:队列、栈、链表、树,堆、图 栈:栈是一种动态集合,它是一种LIFO(last in first ou...

  • 算法攻略

    知识结构: 常见的数据结构及其实现 常见的数据结构主要有数组、链表、栈、队列、二叉堆、树、图等,其中栈和队列的题目...

  • 数据结构队列,栈,链表,树,图的概要

    (本文是根据网络视频做的笔记,更新)数据结构用得少,经常学了忘,忘了学,这次干脆做个笔记。主要的目的是列个大纲,写...

  • 常见的数据结构

    常见的数据结构有: 数组 链表单链表、双向链表、循环链表、双向循环链表、静态链表 栈顺序栈、链式栈 队列普通队列、...

  • 数据结构和算法总结

    常用数据结构: 数组,栈,队列,链表(单向链表,双端链表,双向链表),哈希表(hash table),树(二叉树,...

  • 数据结构:八大数据结构分类

    本文目录: 数据结构分类 1、数组 2、栈 3、队列 4、链表 5、树 6、散列表 7、堆 8、图 数据结构分类 ...

  • 算法概览

    重点掌握的数据结构与算法:10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;10...

网友评论

      本文标题:数据结构队列,栈,链表,树,图的概要

      本文链接:https://www.haomeiwen.com/subject/ndqrsftx.html