前端 简单数据结构与算法
链表
链表是一种有序的数据结构,可以中首、中、尾进行数据存取。
相比于数组,数组在内存中占用一段连续的空间,添加、移除会导致后续元素位移,性能开销大。
链表特点
- 链表是有序的数据结构,链表中的每个部分为节点;
- 链表可以从首、尾、中间进行数据存取;
- 链表的元素在内存中不必是连续的空间;
- 优点:添加与删除不会导致其余元素位移;
- 缺点:无法根据索引快速定位元素;
比较数组
- 多获取、修改元素操作时,数组效率高;
- 多添加、删除元素操作时,链表效率高;
树
- 树形结构是一种非线性数据结构;
- 树中的每个部分称为结点,结点间存在分支结构与层次关系;
结构
- 每个树形结构都具有一个根结点;
- 根据结点之间的关系,也存在父结点、子结点、兄弟结点的概念;
- 不含子结点的结点称为叶节点;
- 子树:对某个结点与其后代结点的整体称呼;
其他概念
- 由于存在父子关系,树中的结点形成多级结构,称为层级;
- 根结点层级为1,向下依次递增;
- 树中最深结点的层级称为树的高度;
二叉树
- 二叉树是树形结构中的一种,二叉树中的每个结点最多只能存在2个子结点;
- 左子结点、右子结点、左子树、右子树;
特殊二叉树
- 二叉树的每层结点都达到最大值,称为满二叉树;
- 二叉树的除最后一层外,每层结点都达到最大值,且最后一层结点都位于左侧,这种形式称为完全二叉树;
- 满二叉树也属于完全二叉树;