摘要:
1. 引入 给你一个数列 {1,2,3,4,5,6},要求创建一颗二叉排序树(BST) 上述 BST 存在的问题分析 左子树全部为空,从形式上看,更像一个单链表 插入速度没有影响 查询速度明显降低,不能发挥 BST 的优势 // 因为每次还需要比较左子树,其查询速度比单链表还慢 [解决方案] 平衡二 阅读全文
posted @ 2020-02-18 21:04
tree6x7
阅读(120)
评论(0)
推荐(0)
摘要:
1. 引入 给你一个数列 {7, 3, 10, 12, 5, 1, 9},要求能够高效的完成对数据的查询和添加。 1. 使用数组 数组未排序 优点:直接在数组尾部添加,速度快 缺点:查找速度慢 数组排序 优点:可以使用二分查找,查找速度快 缺点:为了保证数组有序,在添加新数据时,找到插入位置后,后面 阅读全文
posted @ 2020-02-18 21:02
tree6x7
阅读(145)
评论(0)
推荐(0)
摘要:
1. 基本介绍 赫夫曼编码(Huffman Coding) 是 Huffman 于 1952 年提出一种编码方法,称之为最佳编码,属于一种程序算法。 赫夫曼编码是 {赫夫曼树} 在电讯通信中的经典的应用之一,赫夫曼编码广泛地用于数据文件压缩,其压缩率通常在 20%~90% 之间。赫夫曼码是可变字长编 阅读全文
posted @ 2020-02-18 20:57
tree6x7
阅读(301)
评论(0)
推荐(0)
摘要:
1. 几个重要概念 1.1 路径和路径长度 路径:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路; 路径长度:通路中分支的数目;若规定根结点的层数为 1,则从根结点到第 L 层结点的路径长度为 L-1。 1.2 结点的权及带权路径长度 结点的权:将树中结点赋给一个有着某种含义的数值; 阅读全文
posted @ 2020-02-18 20:54
tree6x7
阅读(139)
评论(0)
推荐(0)
摘要:
1. 引入 2. 基本介绍 n 个结点的二叉链表中含有 n+1 个空指针域 利用二叉链表中的空指针域,存放指向该结点在某种遍历次序下的前驱和后继结点的指针(这种附加的指针称为"线索") 一个结点的前一个结点,称为“前驱结点” 一个结点的后一个结点,称为“后继结点” 这种加上了线索的二叉链表称为线索链 阅读全文
posted @ 2020-02-18 20:53
tree6x7
阅读(161)
评论(0)
推荐(0)
摘要:
1. 概念 从数据存储来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组。但顺序存储二叉树通常只考虑的是完全二叉树。 用数组存储无疑是最节省内存的一种方式。因为数组的存储方式并不需要像链式存储法那样,要存储额外的左右子节点的指针。这也是为什么完全二叉树会单独拎出来的 阅读全文
posted @ 2020-02-18 20:51
tree6x7
阅读(149)
评论(0)
推荐(0)
摘要:
1. 遍历方式 a. 先序遍历 步骤 // 先访问根结点 访问根结点 先序访问左子树 先序访问右子树 举例 b. 中序遍历 步骤 // 中间访问根结点 中序遍历左子树 访问根结点 中序遍历右子树 举例 c. 后序遍历 步骤 // 最后访问根结点 后序遍历左子树 后序遍历右子树 访问根结点 举例 2. 阅读全文
posted @ 2020-02-18 20:50
tree6x7
阅读(188)
评论(0)
推荐(0)
摘要:
1. 树 1.1 定义 树是 n(n>=0) 个结点的有限集,在任意一棵非空树中: 有且仅有 1 个特定的称为“根”的结点。 当 n>1 时,其余结点可分为 m 个互不相交的有限集 T1,T2,…,Tm,其中每一个集合本身又是一棵树,并且称为根的“子树”。 1.2 基本术语 1.3 树的分类 【一般 阅读全文
posted @ 2020-02-18 20:49
tree6x7
阅读(234)
评论(0)
推荐(0)
摘要:
1. 线性结构存储方式分析 1.1 数组存储方式的分析 优点:通过下标方式访问元素,速度快;对于有序数组,还可使用二分查找提高检索速度 缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低 1.2 链表存储方式的分析 优点:在一定程度上对数组存储方式有优化 (比如:插入一个数值结 阅读全文
posted @ 2020-02-18 20:37
tree6x7
阅读(542)
评论(0)
推荐(0)
摘要:
1. 概述 散列表(Hash table,也叫哈希表),是根据 关键码值(Key value) 而直接进行访问的数据结构。也就是说,它通过把关键码值 映射 到表中一个位置来访问记录(也就是先找是存放在哪条链表上),以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 2. 案例 有 阅读全文
posted @ 2020-02-18 20:36
tree6x7
阅读(121)
评论(0)
推荐(0)

浙公网安备 33010602011771号