开始整理真题中的客观小题,至于和算法有关的大题统一最后整理~
定义背诵:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。?
数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为逻辑结构和存储结构。
数据的逻辑结构和储存结构是数据结构的两个密切相关的方面,同一逻辑结构可以对应不同的存储结构。算法的设计取决于数据的逻辑结构,而算法的实现依赖于指定的存储结构。
数据结构的研究内容是构造复杂软件系统的基础,它的核心技术是分解与抽象。通过分解可以划分出数据的3个层次;再通过抽象,舍弃数据元素的具体内容,就得到逻辑结构。类似地,通过分解将处理要求划分成各种功能,再通过抽象舍弃实现细节,就得到运算的定义。上述两个方面的结合可以将问题变换为数据结构。这是一个从具体(即具体问题)到抽象(即数据结构)的过程。然后,通过增加对实现细节的考虑进一步得到存储结构和实现运算,从而完成设计任务。这是一个从抽象(即数据结构)到具体(即具体实现)的过程。
1.在完全二叉树中,大多数结点的度是0或2,只有至多1个的结点的度为1,这要取决于最后一层中叶子结点的个数,如果是偶数则为0,基数为1~
2.快速排序是一种快速排序,通过一遍快拍可以将数据分割为均大于和均小于两部分,其复杂度为N*logN
3.
4.哈希表的开放定址法中包含线性探测法,指的是发生冲突后直接向下寻找直到有一个空位为止~
分享一道408的真题,不难:
5.为了提升效率降低复杂度,可以让线性表只能从一端插入或者删除数据,或者从一端插入另一端删除数据~?
1.二叉树的三许遍历要熟记,套路很死别忘了就OK~
2.哈夫曼树又称最优二叉树,只含有叶子节点和度为2的结点,因此总节点个数为2N+1~
3.二叉树的某些性质可以推广到t叉树,当一个t叉树中除了叶子结点就是度为t的结点,S个叶子节点,N个t度节点,则满足关系式:S=N*(t-1)+1
4.n个节点e条边的图,采用邻接矩阵和邻接表存储,进行深度优先遍历,复杂度分别为N方和N+E
1.普利姆算法和克鲁斯卡尔算法,分别适用于顶点多边少和边多顶点少的情况~
2.森林变为二叉树的过程:
至于普通树转换为二叉树,要遵循左孩子右兄弟的规律~
因此当几棵树所组成的森林转换为二叉树,除了第一棵树以外,其他树均变为新二叉树的右子树~
3.非递归的裴波那契复杂度为N,而递归的为2^(N/2)~