随笔分类 -  数据结构

摘要:2018-03-03 16:00:40 集合运算: 交、并、补、差,判定一个元素是否属于某一集合。 并查集:集合并 、查某元素属于哪个集合。 并查集问题中集合存储如何实现? 1)可以用树结构表示集合,树的每个结点就是集合中的各个元素。 2)采用数组的形式进行存储 查找操作 集合并操作 这里的并操作是 阅读全文
posted @ 2018-03-03 16:10 hyserendipity 阅读(310) 评论(0) 推荐(0)
摘要:2018-03-02 15:03:37 编码问题是计算机科学乃至EE中的一个核心的问题,最基础的编码方式是采用等长的编码,比如计算机中的字符的编码就是采用等长的8位,即一个字节进行的编码。 但是在实际生活中,每个字符出现的频率是不同的,因此,如果我们采用不等长编码,将出现频率高的字符采用较短的编码, 阅读全文
posted @ 2018-03-03 15:59 hyserendipity 阅读(961) 评论(0) 推荐(0)
摘要:2018-03-01 20:38:34 堆(Heap)是可以用来实现优先的队列的数据结构,而不是堆栈。 若采用数组或者链表实现优先队列 若采用树的结构 如果采用二叉搜索树,那么每次删除,比如删除最大值,也就是删除最右边的叶子,那么很快这棵二叉树就不再平衡了。 那能否采用别的方法来构造树呢? 我们可以 阅读全文
posted @ 2018-03-02 15:00 hyserendipity 阅读(219) 评论(0) 推荐(0)
摘要:2018-02-24 23:54:41 散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。 问题 阅读全文
posted @ 2018-03-01 20:24 hyserendipity 阅读(1001) 评论(0) 推荐(0)
摘要:2018-01-25 21:11:02 题目描述: 问题求解: 队列的特点是先进先出,栈的特点是先进后出。如果在push的时候,对队列中的元素进行reverse,那么就可以很容易的进行pop(),top(),empty()等操作。 阅读全文
posted @ 2018-01-25 21:38 hyserendipity 阅读(261) 评论(0) 推荐(0)
摘要:2018-01-05 23:54:29 二叉搜索树的查找时间是和树高成正比的,在最坏条件下,查找的时间复杂度为O(n),因此要尽可能的使树的两边保持平衡,由此出现了自平衡的二叉树。 一、AVL树 在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1, 阅读全文
posted @ 2018-01-08 23:40 hyserendipity 阅读(881) 评论(0) 推荐(0)
摘要:2018-01-04 19:13:46 一、树 在计算机科学中,树(英语:tree)是一种数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 客观世界中有很多具有层次关系的 阅读全文
posted @ 2018-01-05 23:30 hyserendipity 阅读(335) 评论(0) 推荐(0)
摘要:二叉搜索树(英语:Binary Search Tree),也称二叉查找树、有序二叉树(英语:ordered binary tree),排序二叉树(英语:sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 中序遍历二叉查找树可得到一个关键字的有序序列,一个无序序列可以通过构 阅读全文
posted @ 2018-01-01 15:07 hyserendipity 阅读(512) 评论(0) 推荐(0)
摘要:2017-06-22 20:56:10 需要得到最小值,最简单的思路就是遍历一遍求出最小值。但是这样的时间复杂度会是O(n),不满足O(1)的要求。于是想到在建立一个栈来保存最小值。 具体操作是建立两个栈,一个存放数据,一个存放最小值。 push:首先将数据压入数据栈,若最小值栈为空,则将之压入最小 阅读全文
posted @ 2017-06-22 20:56 hyserendipity 阅读(421) 评论(0) 推荐(0)