码字不易,喜欢请点赞!!!
1.数据结构基础
2.线性表(顺序存储、链式存储)
- 元素之间是有顺序的:第一个元素无前驱,最后一个元素无后继,其他元素都有前驱和后继
- 顺序存储结构:用一段地址连续的存储单元一次存储线性表的数据元素(存取时间复杂度为O(1),插入或删除时间复杂度为O(N),适合数据量不大并且存取操作多的数据)
- 优缺点:
- 链式结构:元素信息+后继元素的地址(读取、插入、删除:时间复杂度O(N))
- 头指针:链表第一个结点的存储位置;
- 尾结点:后继不存在,即最后一个结点的指针为空;
- 头结点:第一个结点前设一个结点,可以不存储任何信息,也可以存储长度等附加信息
- 优缺点:
3.栈
4.队列、循环队列
5.串
- 子串查找:KMP算法
6.树
-
节点的度:节点的分支数目
-
树的度:树内各个节点的度的最大值
-
叶节点、终端节点:度为0的点
-
树的深度:树中节点的最大层次
-
二叉树:n个结点的有限集合,该集合或者为空集(空二叉树),或者由一个根节点和两颗互不相交、分别称为根节点的左子树和右子树的二叉树组成。
-
二叉树的5种形态:
-
满二叉树:
-
完全二叉树
-
二叉树的性质
-
二叉树的第i层,最多有 2 i − 1 2^{i-1} 2i−1结点
-
深度为k的二叉树,最多有 2 k − 1 2^k-1 2k−1个节点
-
具有n个结点的完全二叉树的深度为 [ l o g 2 n ] + 1 [log_2^n]+1 [log2n]+1([x]表示对x下取整)
-
二叉树T,叶子节点数为 n 0 n_0 n0,度为2的节点数为 n 2 n_2