数据结构
文章平均质量分 69
Blskx
这个作者很懒,什么都没留下…
展开
-
Huffman树的简单实现
1、定义 给定n个权值作为n的叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 2、实现思想 树节点放入优先队列,每次取出两个最小的构造新节点,并把新节点加入队列,直到队列只剩下一个元素,此元素即为构造的树的树根。(学会使用抽象数据结构来实现更加高级的功能)。 J原创 2016-04-13 20:48:09 · 420 阅读 · 0 评论 -
Python 中数据结构以及操作列表、元组、字符串、字典
一、序列的基本操作和列表相关函数1、基本操作分片>>>array=[1,2,3,4,5]>>>array[0:4][1,2,3,4]指定步长,最后一位为步长>>>array[0:6:2][1,3,5]乘法>>>[1,2,3]*3[1,2,3,1,2,3,1,2,3]成员资格,用 in 判断>>> 'w' in 'ws'True>>> 'k' in 'ws'False列表长度、最大值、最原创 2016-10-28 15:00:40 · 716 阅读 · 0 评论 -
【浅谈递归(一)】递归的基本思想
1、递归简述递归作为编程里最为重要的编程方法之一,其对于解决某些复杂的问题十分有效,并且相对于迭代,其过程在直观上更容易理解。而且不像迭代自己需要维护许多变量,递归也更容易实现。2、递归的基本思想递归并不是简单的自己调用自己,也不是简单的交互调用。递归在于把问题分解成规模更小、具有与原来问题相同解法的问题,如二分查找以及求集合的子集问题。这些都是不断的把问题规模变小,新问题与原问题有着相同的解法。但原创 2016-10-20 09:29:12 · 14617 阅读 · 1 评论 -
【浅谈递归(二)】常见递归问题的分析与解答
一、经典递归问题1、汉诺塔问题题目描述:古代有一个梵塔,塔内有三个座 A、B、C,A 座上有 64 个盘子,盘子大小不等,大的在下,小的在上。有一个和尚想把这 64 个盘子从 A 座移到 B 座,但每次只能允许移动一个盘子,并且在移动过程中,3 个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用 B 座,要求打印移动的步骤。如果只有一个盘子,则不需要利用 B 座,直接将盘子从 A 移动到原创 2016-10-20 11:13:26 · 3518 阅读 · 0 评论 -
C++中的容器类
一、容器分类1、容器分类顺序存储结构(vector、list、deque)、关联存储结构(set、map、mutiset、multimap)两类容器。 标准容器类 说明 用法 顺序容器类 vector 从后面快速的插入与删除,直接访问任何元素 相当于一个数组,在内存中分配一块连续的内存空间进行存储。支持不指定 vector 大小的存储原创 2016-10-21 09:37:30 · 501 阅读 · 0 评论 -
【算法】堆排序以及应用
一、堆性质n个关键字序列k1,k2,.........kn当且仅当满足一下性质是为一个堆k[i]k[i]以上是小顶堆的定义,大顶堆则相反吧1、堆的构建找到第一个非叶子节点,根据大顶堆或者小顶堆的性质进行调整,当前以及其左右子节点比较。注意,被调整的节点,还有子节点的情况,需要递归进行调整。2、堆的插入插入节点时,先插入到最后,然后再调整堆3、堆的原创 2017-04-05 22:00:19 · 747 阅读 · 0 评论 -
【求两个数异或的最大值】01字典树求解
一、题目求 n 个非负数中任意 2 个的异或值的最大值。n 数量级为 10^5。分析:直接暴力求解一定会超时。但是一个字符串可以看成一个32位的01字符串,因此可以建立字典树,建立好树以后对于任意非负整数x,只要先求反,然后顺着树贪心查找就行。找到0 or 1就继续,找不到就忽略继续查找。二、字典树介绍字典树又称单词查找树,Trie 树,是一种树形结构,是一种哈希树的变种。原创 2016-10-31 17:28:17 · 3140 阅读 · 0 评论