知识大全 09年自考《数据结构》各章要点二[2]
Posted 结点
篇首语:贵在坚持,难在坚持,成在坚持。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 09年自考《数据结构》各章要点二[2]相关的知识,希望对你有一定的参考价值。
满二叉树是一棵深度为k 结点数为( ^k) 的二叉树 完全二叉树是满二叉树在最下层自右向左去处部分结点
二叉树的顺序存储结构就是把二叉树的所有结点按照层次顺序存储到连续的存储单元中 (存储前先将其画成完全二叉树)
树的存储结构多用的是链式存储 BinTNode的结构为lchild|data|rchild 把所有BinTNode类型的结点 加上一个指向根结点的BinTree型头指针就构成了二叉树的链式存储结构 称为二叉链表 它就是由根指针root唯一确定的 共有 n个指针域 n+ 个空指针
根据访问结点的次序不同可得三种遍历 先序遍历(前序遍历或先根遍历) 中序遍历(或中根遍历) 后序遍历(或后根遍历) 时间复杂度为O(n)
利用二叉链表中的n+ 个空指针域来存放指向某种遍历次序下的前趋结点和后继结点的指针 这些附加的指针就称为 线索 加上线索的二叉链表就称为线索链表 线索使得查找中序前趋和中序后继变得简单有效 但对于查找指定结点的前序前趋和后序后继并没有什么作用
树和森林及二叉树的转换是唯一对应的
转换方法
·树变二叉树 兄弟相连 保留长子的连线
·二叉树变树 结点的右孩子与其双亲连
·森林变二叉树 树变二叉树 各个树的根相连
树的存储结构
·有双亲链表表示法 结点data | parent 对于求指定结点的双亲或祖先十分方便 但不适于求指定结点的孩子及后代
·孩子链表表示法 为树中每个结点data | next设置一个孩子链表firstchild 并将data | firstchild存放在一个向量中
·双亲孩子链表表示法 将双亲链表和孩子链表结合
·孩子兄弟链表表示法 结点结构leftmostchild |data | rightsibing 附加两个分别指向该结点的最左孩子和右邻兄弟的指针域
cha138/Article/program/sjjg/201311/22735相关参考
冒泡排序 ·自下向上确定最轻的一个 ·自上向下确定最重的一个 ·自下向上确定最轻的一个后自上向下确定最重的一个 ·冒泡排序是就地的稳定排序时间复杂度为O(n^)比较次数为n(n)/;移动次
归并排序 ·先两个一组排序形成(n+)/组再将两组并一组直到剩下一组为止 ·归并排序是非就地稳定排序时间复杂度是O(nlogn) 分配排序 箱排序 ·按关键字的取值范围确定箱子数按关键字
构造最小生成树的算法 ·Prim算法的时间复杂度为O(n^)与边数无关适于稠密图 ·Kruskal算法的时间复杂度为O(lge)主要取决于边数较适合于稀疏图 最短路径的算法 ·Dijkst
顺序文件的插入删除和修改只能通过复制整个文件实现 索引文件的组织方式通常是在主文件之外建立一张索引表指明逻辑记录和物理记录之间一一对应的关系它和主文件一起构成索引文件 索引非顺序文件中的索引表
经过排序后这些具有相同关键字的记录之间的相对次序保持不变则称这种排序方法是稳定的否则排序算法是不稳定的 排序过程中不涉及数据的内外存交换则称之为内部排序(内排序)反之若存在数据的内外存交换则称之
第九章查找 查找的同时对表做修改操作(如插入或删除)则相应的表称之为动态查找表否则称之为静态查找表 衡量查找算法效率优劣的标准是在查找过程中对关键字需要执行的平均比较次数(即平均查找长度ASL
散列技术将结点按其关键字的散列地址存储到散列表的过程称为散列 散列函数的选择有两条标准简单和均匀 常见的散列函数构的造方法 ·平方取中法hash=int((x^)%) ·除余法表长为mha
图的存储结构 ·邻接矩阵表示法用一个n阶方阵来表示图的结构是唯一的适合稠密图 ·无向图邻接矩阵是对称的 ·有向图行是出度列是入度 建立邻接矩阵算法的时间是O(n+n^+e)其时间复杂度为O
第六章树 树是n个结点的有限集合非空时必须满足只有一个称为根的结点其余结点形成m个不相交的子集并称根的子树 根是开始结点结点的子树数称度度为的结点称叶子(终端结点)度不为的结点称分支结点(非终
树的前序遍历与相对应的二叉树的前序遍历一致;树的后序遍历与相对应的二叉树的中序遍历一致 树的带权路径长度是树中所有叶结点的带权路径长度之和树的带权路径长度最小的二叉树就称为最优二叉树(即哈夫曼树