保研复习——数据结构重点
Posted 牧空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了保研复习——数据结构重点相关的知识,希望对你有一定的参考价值。
线性结构
1、数组(顺序表)和链表的区别
- 存取方式
- 顺序表可以顺序存取也可以随机存取
- 链表只能从表头顺序存取元素
- 逻辑结构和物理结构
- 顺序,逻辑上相邻的元素,对应的物理存储位置也相邻
- 链式,仅逻辑上相邻的元素,物理存储位置则不一定相邻
- 查找、插入和删除操作
- 顺序表
- 按值查询:无序为 O ( n ) O(n) O(n),有序用二分为 O ( l o g 2 n ) O(log_2n) O(log2n)
- 按序号查询: O ( 1 ) O(1) O(1)
- 插入和删除,平均移动半个表长的元素
- 链表
- 查询平均时间复杂度 O ( n ) O(n) O(n)
- 插入和删除修改相关结点的指针域
- 存储密度不够大
- 顺序表
- 空间分配
- 顺序存储
- 静态存储分配:存储空间固定,满后无法扩充,如何分配合适大小的空间是一个问题
- 动态存储分配:存储空间可以扩展,但是需要移动大量元素,导致操作效率低。且如果内存中没有大块的连续存储空间,会导致分配失败
- 链式存储
- 结点空间在需要时申请即可
- 顺序存储
堆
树
基本术语
- 结点的度:结点的孩子个数;树的度:最大的结点的度
- 叶子结点:度为0的结点
- 结点深度:以根结点为1开始计数,逐层累加
- 结点高度:以其叶结点开始,自底向上逐层累加
- 数的深度(高度):最大层数
- 路径和路径长度:两个结点之间所有经过的结点序列,长度为路径上经过的边得个数
树的性质
- 树中的结点数等于所有结点的度数加1。
- 度为 m m m的树中第i层上至多有 m i − 1 m^{i-1} mi−1个结点 ( i ≥ 1 ) (i≥1) (i≥1).
- 高度为 h h h的 m m m叉树至多有 ( m h − 1 ) / ( m − 1 ) (m^h- 1)/(m-1) (mh−1)/(m−1)个结点3。
- 具有 n n n个结点的 m m m叉树的最小高度为 ⌈ l o g m ( n ( m − 1 ) + 1 ) ⌉ \\lceil log_m(n(m- 1)+ 1) \\rceil ⌈logm(n(m−1)+1)⌉,即满m叉树的情况
二叉树
特殊二叉树
- 满二叉树:高度为 h h h,含有 2 k − 1 2^k-1 2k−1结点
- 完全二叉树:(对应相同高度的满二叉树缺失最下层最右边的一些连续的叶子结点)
- 二叉排序树:左子树上所有结点的关键字均小于根结点的关键字;右子树上的所有结点的关键字均大于根结点的关键字;左右子树又是又各是一棵二叉树
- 平衡二叉树:树上任一结点的左子树和右子树的深度之差不超过1
森林
图
排序
搜索
动态规划
以上是关于保研复习——数据结构重点的主要内容,如果未能解决你的问题,请参考以下文章