基础
相同的逻辑结构对应的存储结构不一定相同
比如线性结构可以用数组存储,也可以用链表存储
知识点:
逻辑结构
描述数据元素之间的逻辑关系,分为以下几类:
1、 集合:数据元素同属于一个集合,此外没有关联
2、 线性结构:数据元素之间存在一一对应的关系
3、 树结构:数据元素之间存在一对多的层次关系
4、 图结构:数据元素之间存在多对多的层次关系
存储结构
又称物理结构,是数据在计算机中的表示,分为:
1、 顺序存储结构
用一组连续的存储单元依次存储数据,元素之间的逻辑关系由元素存储位置表示
2、链接存储结构
用一组任意的存储单元存储数据元素,元素之间的逻辑关系用指针表示
算法所具备的特性:确定性,可行性,有穷性,输入性,输出性
线性表
单链表中头结点的作用:为了运算方便
(没有头结点的话,对具体结点操作就需要做特异化处理;比如在插入结点时,一般的位置都是把待插入结点指向后继结点,前驱结点指针指向当前结点,如果要插入在第一个结点前面,待插入结点指向头结点,无其他结点指向待插入结点,这特殊的操作就需要额外的代码,以及多余的判断来实现;所以需要头结点来统一操作)
顺序表的主要优点:随机存取
循环链表的主要优点:从任意结点出发都能遍历整个链表
双链表的主要优点:更方便数据的插入和删除
树和二叉树
对于一个二叉树来说
第i层最多有2i-1个结点
如果该二叉树深度为k
则最多有2k-1个结点(第一层最多20个,第二层最多21个……)最少k个结点(每层一个)
如果这个二叉树是完全二叉树,则至少有2k-1个结点
具有n个结点的完全二叉树深度为log2n+1,其中log2n向下取整
哈夫曼编码原则:短编码不能是长编码的前缀,否则在转译过程会出现歧义
构成的哈夫曼图不存在度为1的结点
图
G是一个非连通无向图,共28条边,该图至少有8个顶点
解方程28≤n(n-1)/2 ⇒ n≥8
知识点:
无向图G中顶点数为n,图G至少有0条边,最多有n(n-1)/2条边,若G为有向图,至少0条边
至多**n(n-1)**条边
最小生成树是指:连通网中所有生成树中权值之和最小的生成树