前端数据结构-栈,链表,队列,树

参考学习:
https://blog.csdn.net/haoshidai/article/details/52263191
的应用:首先是十进制转二进制问题,以及任意进制转换的算法;然后是平衡圆括号问题;最后,学习如何用栈解决汉诺塔问题。
队列:队列是遵循FIFO(First In First Out,先进先出,也称为先来先服务)原则的一组有序的项。 队列在尾部添加新元素,并从顶部移除元素。最新添加的元素必须排在队列的末尾。
链表:链表存储有序的元素集合,但不同于数组,链表中的元素在内存中并不是连续放置的。每个元素由一个存储元素本身的节点和一个指向下一个元素的引用(也称指针或链接)组成。
单向链表 双向链表 循环链表
单向链表:
在这里插入图片描述
双向链表:
在这里插入图片描述
循环链表:
在这里插入图片描述
:树的特点:
①每个节点有零个或多个子节点;
②没有父节点的节点称为根节点;
③每一个非根节点有且只有一个父节点;
④除了根节点外,每个子节点可以分为多个不相交的子树;
度,叶子节点,根节点,父节点,子节点,深度,高度:

结点的高度:从该节点向下分支的叶节点开始自底向上逐层累加。
结点的深度:从根节点开始自顶向下逐层累加。
树的高度就是指最底层的叶子结点到根结点的距离(眼睛从下往上看的数数,相当于在井底往上看)
树的深度就是根结点到最底层的叶子结点的距离(眼睛从上往下看的数数,相当于从井盖往下看)
对于整棵树来说,最深的叶结点的深度就是树的深度;树根的高度就是树的高度。这样树的高度和深度是相等的。

在二叉树的概念下又衍生出满二叉树和完全二叉树的概念

满二叉树:除最后一层无任何子节点外,每一层上的所有结点都有两个子结点。也可以这样理解,除叶子结点外的所有结点均有两个子结点。节点数达到最大值,所有叶子结点必须在同一层上
完全二叉树:若设二叉树的深度为h,除第 h 层外,其它各层 (1~(h-1)层) 的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。
二叉树的遍历方式

先序遍历:先根节点->遍历左子树->遍历右子树
中序遍历:遍历左子树->根节点->遍历右子树
后序遍历:遍历左子树->遍历右子树->根节点
在这里插入图片描述
有关树的应用:二叉查找树(二叉排序树)、平衡二叉树(AVL树)、红黑树、B-树、B+树、字典树(trie树)、后缀树、广义后缀树,哈弗曼树, 最小生成树Kruskal。
参考学习:https://www.cnblogs.com/xiaohuochai/p/8175716.html

posted @ 2019-10-10 21:40  princeness  阅读(322)  评论(0编辑  收藏  举报