408知识框架总结——数据结构
个人复习用,有用自取,欢迎转载,标明出处即可。
不推荐在第一遍复习时使用,第一遍建议还是认认真真看书做题,第二遍复习时可以配合框架来过知识点,哪里不熟翻书来强化记忆。
重点难点不构成参考建议,仅为个人想法!!!
第一章、绪论☆
1.2算法和算法评价
时间复杂度、空间复杂度(最好、最坏)
乘法原则、加法原则
常见的渐近时间复杂度(常对幂指阶)
原地工作的概念
循环主体中的变量参与循环条件时的计算
第二章、线性表☆☆☆(算法题基础)
2.1.2线性表基本操作
创销、增删改查(命名要具有可读性)——数据结构的基本操作集,按此顺序推断后续数据结构
2.2线性表的顺序表示
顺序表的定义:静态分配、动态分配——代码段
顺序表的主要特点(四点)
插入、删除、按值/按位查找——代码段——注意位序和数组下标,注意数组范围和存储空间的判断。
2.3线性表的链式表示
单链表:
头插法建立单链表(有/无头结点)、尾插法建立单链表——代码段
按序查找、按值查找、插入结点(前插后插)、删除结点、求表长——代码段
双链表——定义、插入与删除(代码段可掌握)
循环单/双链表、静态链表——定义和特性
顺序表和链表的比较:4点
如何选择存储结构?(逻辑结构、存储结构、操作环境三方面来回答)
第三章、栈、队列和数组☆☆☆☆☆
3.1栈
栈的定义(顺序栈)——代码段
初始化(创)、销毁栈(销)、进栈(push增)、出栈(pop删)、读栈顶元素(查)、判空——代码段
后进先出LIFO、初试top位置(-1)、共享栈的特性。
3.2队列
顺序队列的定义——代码段
基本操作:初始化、判空、入队、出队、读队头元素。
循环队列:判空判满条件(三种方法),指针位置,队列中元素位置
循环队列操作集:初始化、判空、入队、出队——代码段
链队的定义——代码段
操作集:初始化、判空、入队、出队。
双端队列和输入、输出受限的双端队列——操作方法。
3.3栈和队列的应用
栈:括号匹配、表达式求值(后缀表达式求值)、递归
队列:层次遍历、计算机系统中的应用(FCFS、缓冲区)
3.4数组和特殊矩阵
注意下标!!!
数组的存储结构——行优先和列优先
特殊矩阵压缩存储:
①对称矩阵-行/列优先、上/下三角,元素的关系
②三角矩阵-上下三角区
③三对角矩阵(带状矩阵)
④稀疏矩阵的存储-数组或十字链表法
第四章、串
KMP算法、KMP优化算法——只需掌握手算步骤以及如何计算next、nextval值[做两道题]
第五章、树与二叉树☆☆☆☆☆
5.1树的定义和基本术语
根结点、子树、n个结点的树有n-1条边(根节点没有上层节点)
祖先、子孙、双亲、孩子、兄弟
结点的度、树的度
分支结点/非终端结点、叶子结点/终端结点
结点的深度、高度、层次。
有序树和无序树
路径和路径长度(树的分支是有向的)
森林
树的性质:
树中结点数是所有节点的度数之和+1 [结点数=总度数+1]
度为m的树中第i层上至多有个结点(i>=1)
高度为h的m叉树至多有个结点(至少有h个结点)
具有n个结点的m叉树的最小高度为
注意区分 度为m的树 和 m叉树的区别
5.2二叉树的概念☆☆☆☆☆
几种特殊的二叉树
满二叉树:高度、结点数、特征
完全二叉树:高度、结点数、特点:区分分支结点和叶子结点、叶子结点出现层数、结点数判断分支结点左右孩子数
二叉排序树(BST树)、平衡二叉树(AVL树)(重点在第七章)
二叉树的性质:
1、非空二叉树叶子结点数=度为2的结点数+1 [n0=n2+1——n=n0+n1+n2]
2、非空二叉树上第k层至多有个结点(k>=1)
3、高度为h的二叉树至多有个结点(h>=1)
4、具有n个结点的完全二叉树的高度为或
二叉树的链式结构定义——代码段
5.3 二叉树的遍历和线索二叉树
先序遍历、中序遍历、后序遍历——递归实现代码段
层次遍历——代码段
由遍历序列构造二叉树(前中、后中、层中)
线索二叉树构造方式——先序、中序、后序——能够用手算法画出,找前驱、后继
5.4树、森林
树的存储结构——双亲表示法、孩子表示法、孩子兄弟表示法——代码段
树、森林与二叉树的转换——手算法推导
树和三林的遍历与二叉树遍历的关系
5.5树与二叉树的应用 ☆☆☆
哈夫曼:
带权路径长度、哈夫曼树的构造、哈夫曼编码
并查集:
结构定义、初始化、find、union、优化find、优化union——代码题?
第六章、图
6.1图的基本概念
图G顶点集V边集E,G=(V,E)
有向图、无向图 完全图(简单完全图)-有向/无向
子图 联通、连通图、连通分量/极大连通子图、非连通图(最多有多少条边?)
强连通图、强连通分量(n个顶点的有向图如果是强连通图,最少需要多少条边?)
区分极大连通子图和极小连通子图
生成树、生成森林——树是特殊形态的图
无向图——顶点的度、有向图——入度、出度
简单路径、简单回路、距离、有向树、带权路径长度
6.2图的存储及基本操作
邻接矩阵法、邻接表法——代码段—特点、适用范围
十字链表法、邻接多重表(能看懂)
6.3图的遍历
广度优先搜索BFS、深度优先搜索DFS(手算)
图的连通性判断
6.4图的应用☆☆☆☆☆
最小生成树——Prim算法、Kruskal算法——手算推演、特点、适用范围
最短路径——Dijkstra算法、Floyd算法——手算推演、特点、适用范围
有向无环图——DAG图描述含有公共子式的表达式(咸鱼分层法)
拓扑排序——AOV网-拓扑排序算法
关键路径——关键路径长度——手算推演-关键活动、关键路径不唯一、如何缩短工期
第七章、查找
7.2顺序查找和折半查找
一般线性表的顺序查找、有序表的顺序查找
折半查找——代码段
分块查找
查找成功、查找失败平均长度
7.3树型查找
二叉排序树BST
定义、递归查找算法——代码段
BST的插入、构造、删除(叶节点、只有一棵左/右子树、有左右两棵子树)、查找效率(成功失败平均长度)
平衡二叉树AVL
插入(LL、RR、LR、RL)、删除、查找(查找效率)
红黑树:定义
结论:
1、从根到叶节点的最长路径不大于最短路径的2倍
2、有n个内部节点的红黑树的高度<=
如何插入新节点:根/非根,插入后不满足定义则看叔叔脸色红黑。
查找时间复杂度
7.4B树和B+树☆☆☆
重点在于B树
B树定义(每个结点、根节点、除根节点外、非叶结点结构、叶节点)
性质(矮胖):
1、根节点子树数∈[2,m],关键字数∈[1,m-1];其他节点子树数∈[,m],关键字数∈[,m-1](尽可能满)
2、对任意节点,所有子树高度都相同(尽可能平衡)
3、关键字的值:类比二叉排序树
含有n个关键字的m叉B树——
B树的插入、删除(不在终端结点;在终端结点:直接能删、兄弟够借、兄弟不够借)
B+树基本概念
最大特点:叶节点串成一条链
B+树和B树的主要差异(四点)
7.5散列表
散列函数构造方法:直接定址法、除留余数法、数字分析法、平方取中法
处理冲突的方法:开放定址法(线性探测、平方探测、双散列、伪随机序列)、拉链法
散列查找及性能分析
平均查找长度(成功、失败)、装填因子
第八章、排序
8.2插入排序
直接插入排序、希尔排序
8.3交换排序
冒泡排序、快速排序(优化快排)——代码段
8.4选择排序
简单选择排序、堆排序
8.5归并排序和基数排序
归并排序、基数排序
8.6内部排序算法比较
1、算法分析基本只看最坏情况
2、时间复杂度、空间复杂度、稳定性、过程特征
3、上述算法手算推演(主要了解过程特特征,能画出每一轮的排序后状态)
内部排序算法的应用——待排元素数目、元素信息量大小、稳定性要求、初始结构是否有序等
8.7外部排序
多路平衡归并及败者树——手算推演
自己设计一个多路归并排序(外部排序)的例子:初始有不少于10个归并段,每个归并段长度不同 |
利用初始归并段构造3叉哈夫曼树,并画出3路归并的最佳归并策略 |
利用初始归并段构造4叉哈夫曼树,并画出4路归并的最佳归并策略 |
置换-选择排序、最佳归并树
408知识框架总结——数据结构相关推荐
- 408知识框架总结——计算机网络
个人复习用,有用自取,欢迎转载,标明出处即可. 不推荐在第一遍复习时使用,第一遍建议还是认认真真看书做题,第二遍复习时可以配合框架来过知识点,哪里不熟翻书来强化记忆. 重点难点不构成参考建议,仅为个人 ...
- 408知识框架总结——计算机组成原理
个人复习用,有用自取,欢迎转载,标明出处即可. 不推荐在第一遍复习时使用,第一遍建议还是认认真真看书做题,第二遍复习时可以配合框架来过知识点,哪里不熟翻书来强化记忆. 重点难点不构成参考建议,仅为个人 ...
- Interview之AI:人工智能领域岗位求职面试—人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础、ML算法简介、DL算法简介)来理解技术交互流程
Interview之AI:人工智能领域岗位求职面试-人工智能算法工程师知识框架及课程大纲(AI基础之数学基础/数据结构与算法/编程学习基础.ML算法简介.DL算法简介)来理解技术交互流程 目录 一.A ...
- 最实用的web前端开发知识框架图
1.分类 所有知识框架,那肯定是一个结构型的展现,就是一棵树.web前端的知识点非常多,也非常散,需要好几层结构来组织这个体系,否则就会显得很乱.那么如何组织.把谁和谁放在一块儿?这是真正值得我们去思 ...
- 适用于FreeRTOS初学者,FreeRTOS整体知识框架
写在前面:因为实际使用需求,学习了一段时间FreeRTOS.从FreeRTOS的市场占有率来看,网上的资料应该很多,但是在学习过程中尤其是遇到问题的时候,发现真正有用的资料并不多. 所以写这篇文章的目 ...
- 后端开发知识框架汇总
后端开发知识框架汇总 Spring框架 Spring/Springboot/SpringMVC Spring 其是一个引擎,众多衍生产品例如boot.security.jpa等等:但他们的基础都是 ...
- 项目管理知识框架PMBOK(文字版)
项目管理知识框架PMBOK 项目整体管理[I](Integration) 1. 制定项目章程(Develop Project Charter) 2. 制定项目初步范围说明书(Develop Preli ...
- Interview:人工智能岗位面试—人工智能岗位求职之机器学习算法工程师必备知识框架结构图
Interview:人工智能岗位面试-人工智能岗位求职之机器学习算法工程师必备知识框架结构图 目录 机器学习算法工程师思维导图 机器学习算法工程师思维导图 后期继续更新-- 1.思维导图01
- 分段概率密度矩估计_考研数学:高数、线代、概率3科目知识框架梳理
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 首先要确保常考题型,常考知识点非常熟练.下面从高等数学.线性代数.概率统计三个模块进行阐述. 高等数学部分 1.函数的极 限;数列的极 限;无穷小及阶的问 ...
最新文章
- 子类如果不实例化则不会调用它自身的静态构造函数
- 嵌入式Linux上通过boa服务器实现cgi/html的web上网【转】
- java多核的利用率_java利用FutureTask、ExecutorService 在多核时代充分利用CPU运算
- matlab矩阵内存预分配
- Go语言学习Day04
- 华为怒发公开信;锤子手机难产罗永浩陷尴尬处境;苹果错失 5G | 极客头条
- 验证只能以英文字母开头的字符串
- VLAN tagged和untagged
- Git小乌龟(TortoiseGit)使用详情
- 输出100以内的素数(质数)
- 网页前端设计之多选按钮
- 使用GPO(Profile-Guided Optimization)优化程序
- 阿里云服务器配置(一)基础
- 移动端测试=== adb 无线连接手机
- 编译原理 赋值语句翻译成四元式
- COMSOL三维动网格步骤!!!
- 固态硬盘win7优化指南:九个Win7固态硬盘优化方法
- uni-app之城市选择
- 网络版控制台三国杀结构图
- 华清远见学习笔记—Level1—Day5—数组和字符串