知识学习大二上数据结构知识点查漏补缺

Posted cls1277

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识学习大二上数据结构知识点查漏补缺相关的知识,希望对你有一定的参考价值。

Update:

2021年12月30日14点28分:增加了错题集和修改原先部分内容

错题集

队列和栈虽然都是单向插入的数据结构,但是如果没有头结点,第一次插入的时候要认为是尾部插入,所以尾指针可能修改

二分的时候r=mid-1,l=mid+1

快速排序递归用栈,栈大小约为 O ( l o g n ) O(logn) O(logn)

关键路径部分定义:

关于栈求表达式

关键路径的问题:

求vl时,如果有多条边指向一个点,减完之后要去min。如果选max,会导致时间超过一条边连接的事件的vl,导致超过了那个事件的最迟时间,不能完成,故选min。

稀疏矩阵快速转置算法理解:

一些概念

ACN(average comparing number):平均比较次数, A C N = ∑ i = 0 n − 1 p i × c i ACN = \\sum_i=0^n-1p_i\\times c_i ACN=i=0n1pi×ci,其中 p i p_i pi是搜索第i项的概率, c i c_i ci是找到时的比较次数

AMN(average moving number):平均移动次数,计算方法同上

存储密度:d = 数据元素的值所需的存储量 ÷ \\div ÷ 该数据元素所需的存储总量,因为可能有指针等非数据元素的值占用空间

稀疏因子: e = s m × n e=\\fracsm\\times n e=m×ns,s为分零元素个数,矩阵为 m × n m\\times n m×n

EPL:树的外部路径长度,等于各叶节点到根节点的路径长度之和

IPL:树的内部路径长度,等于非叶节点到根节点的路径长度之和

PL:树的路径长度, P L = E P L + I P L PL = EPL + IPL PL=EPL+IPL

WPL:带权路径长度之和, W P L = ∑ i = 1 n w i × l i WPL=\\sum_i=1^nw_i\\times l_i WPL=i=1nwi×li,其中第i个外结点的权值为 w i w_i wi,它到根的路径长度为 l i l_i li,则该外结点到根的带权路径长度为 w i × l i w_i\\times l_i wi×li

扩充二叉树的带权路径长度定义为树的各外结点到根的WPL

ASL(average search length):平均搜索长度, A S L = ∑ i = 1 n p i × c i ASL=\\sum_i=1^n p_i\\times c_i ASL=i=1npi×ci p i p_i pi为搜索表中第i个元素的概率, c i c_i ci为找到给定关键码的比较次数,分success和failure

结点的平衡因子bf:右子树的高度-左子树的高度

跳表:有一组分层的链,0层链有n个元素,0级链的 2 k , 2 × 2 k , 3 × 2 k , . . . 2^k,2\\times 2^k,3\\times 2^k,... 2k,2×2k,3×2k,...个结点链接成为 k − 1 k-1 k1级链,取元素所在最高级。根据跳表的分级,进行折半搜索。

装载因子: α = n m \\alpha = \\fracnm α=mn,m为散列表的空间大小,n为填入散列表中的记录数。一般 α \\alpha α控制在0.6~0.9之间,临界值是0.5,大于临界值,性能会急剧下降

B树:1层1个结点,2层至少2个结点,3层至少 2 ⌈ m 2 ⌉ 2\\lceil \\fracm2 \\rceil 22m个结点,4层至少 2 ⌈ m 2 ⌉ 2 2\\lceil \\fracm2 \\rceil^2 22m2个结点……除根结点,每层至少 ⌈ m 2 ⌉ \\lceil \\fracm2 \\rceil 2m个结点,每个结点里最多m-1个值,最少 ⌈ m 2 ⌉ − 1 \\lceil \\fracm2\\rceil-1 2m1个。根节点至少2棵子树。2-3树m=3,2-3-4树m=4……。失败结点共n+1个。

优先队列:优先权数字越小,优先权越高

小问题

判断字符串是否为回文串:字符串每个字符进入栈和队列,同时从栈顶和队头取元素,并判断是否相等

三对角矩阵(主对角线和相邻的上下两条对角线上有值,其余为0): A [ i ] [ j ] A[i][j] A[i][j]在数组 B [ i ] B[i] B[i]存放于第 k k k个,则 i = ⌊ k + 1 3 ⌋ , j = k − 2 × i i= \\lfloor \\frack+13 \\rfloor , j=k-2\\times i i=3k+1,j=k2×i

广义表的长度:分几大块(原子和子表都只算一个);广义表的深度:括号的最大嵌套次数

二叉树中序遍历的直观方法:投影法。按照合适的大小将每个点分开,垂直投影到水平直线上,得到的顺序即为中序遍历序

二叉树遍历序:按照dfs遍历整颗二叉树(即先根节点,再左节点,再右节点的顺序),第一次访问的顺序排列为先序,第二次为中序,第三次为后序。实现的时候需要记录每个结点访问次数,以及叶节点的处理方法。

红黑树的三个特性:根节点和外部结点都是黑色结点;从根结点到外部结点的路径上,不允许出现两个连续的红色结点;所有从根结点到外部结点的路径上都有相同数目的黑色结点。

按秩启发式合并并查集时间复杂度:find: O ( n l o g n ) O(nlogn) O(nlogn),树高限制在logn内

并查集合并路径压缩的非递归写法,以及优化后的并查集时间复杂度计算

哈希函数取模的选择: ≤ n \\leq n n的(最大)素数,n为hash表长度

哈希冲突的解决方法:闭散列方法(存储到表的另一个位置),开散列方法(存在散列表主表之外),双hash,公共溢出区(冲突的都放入此表)

折半插入的时间复杂度: O ( n 2 ) O(n^2) O(n2),虽然减少了比较次数,但是移动次数仍不变,所以复杂度仍是平方级别

希尔排序:时间复杂度 O ( n 3 2 ) O(n^\\frac32) O(n23)

设置“监视哨”简化边界判断可以节省时间

树(森林)后根遍历等于对应二叉树的中序遍历

带图

如何判断单链表中有环?快慢指针法。如何找到环的入口?

KMPnext数组的计算算法

单链表的头指针:

卡特兰数计算式及其应用:

ASL与转载因子 α \\alpha α的关系:

B+树:

求关键路径的步骤:

稀疏矩阵的快速转置算法:

其他

递归算法转非递归算法

B树结点的删除:注意满足B树的性质。

线索化二叉树:如果没有左儿子,就指向前驱结点;如果没有右儿子,就指向后继结点。

哈希的数字分析法

以上是关于知识学习大二上数据结构知识点查漏补缺的主要内容,如果未能解决你的问题,请参考以下文章

机器学习知识点查漏补缺(支持向量机)

查漏补缺1

机器学习知识点查漏补缺(随机森林和extraTrees)

20165103java程序设计第八章查漏补缺

js知识查漏补缺

查漏补缺12个MySQL数据库基础知识点总结