随笔分类 - 数据结构
摘要:哈夫曼树参考字符出现频率的不同,决定字符编码长度,从而提高效率-哈夫曼树及哈夫曼编码涉及的重要问题 目标:将带权路径长度降到最低 哈夫曼树的构造 哈夫曼树的特点 哈夫曼编码 二义性:一个编码对应多种字符串如何避免二义性
阅读全文
摘要:堆(实现优先队列)主要操作:插入删除 堆: 从下标为1的地方开始存放,用完全二叉树存储,且任何结点都大于(或小于)左右子树所有的节点值,从根节点到任意节点路径上节点序列都是有序的 堆的创建和插入(判断条件加&&i>1,或哨兵值大使得效率提高 堆的删除 最大堆的建立:思路-从下到上逐一调整成堆
阅读全文
摘要:用邻接矩阵表示图 初始化一个只有顶点的图 插入边:定义边结点,将边定义为指向结点的指针 输入格式 建立一个完整的图
阅读全文
摘要:二叉树的删除1.删除叶节点:删除该节点,并使该节点的父结点指向NULL2.要删除的节点只有一个孩子:将其父节点的指针指向要删除的孩子节点3.要删除的节点有左右两棵子树:取右子树中最小的元素替代or取左子树中最大的元素替代 返回左子树删除了x这个节点后新的左子树根结点的地址 平衡二叉树不同的插入次序形
阅读全文
摘要:二叉树的存储结构: 1.顺序存储结构-适用于完全二叉树 一般二叉树也可以通过补全结点,采用这种结构(会造成空间的浪费): 2.链表存储:定义结构,含有三个域,分别存放数据、左结点、右结点 二叉树的遍历(以链式存储为例): 递归(根本还是堆栈)实现 先序遍历: 中序遍历: 后序遍历: 每个节点都有三次
阅读全文
摘要:树:是一种层次关系,如人类社会家谱,社会组织结构,图书管理系统 树存在的原因:层次管理在管理上具有更高的效率查找 静态查找(例如放在数组中: 顺序查找(最简单,效率不高:将元素放在数组中,用一个结构指向数组,结构含两个分量,一个分量是指针指向数组的头,另一个分量代表数组中存放的的元素个数 二分查找(
阅读全文
摘要:概念: 堆栈:堆栈是一种线性结构,也是一个特殊的线性表。具有一定的约束作用:只在一端(栈顶,Top)做插入删除 插入数据:入栈(Push);删除数据:出栈(Pop); 重要特征:后入先出 Last In First Out(LIFO) 基本操作: 栈的顺序存储实现(利用数组):通常有一个一维数组和一
阅读全文