
数据结构
knswd
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1068 Find More Coins
题目大意:有N枚硬币,要支付M元钱,如何支付,如果有不同的支付方式,取最小的。此处最小定义为如果第一枚小的为最小,如果第一枚一样,比第二枚…以此类推 这道题很想01背包问题,01背包要求的是总价值,而此题是要求组成M的硬币序列。 动态转移方程:f(i,j) =max(f(i-1,j),f(i-1,j-coins[i])+coins[i]) i:第i枚硬币,f(i,j):加入i枚硬币的最大面值(&...原创 2020-03-08 00:00:49 · 229 阅读 · 0 评论 -
二叉搜索树的创建(插入)、查找、删除、遍历(中序非递归)
最近在学数据结构,前段时间学了二叉搜索树和平衡二叉树,但当时眼高手低就看了网课啥也没敲。。现在优点愧疚,就补上了。 二叉搜索树: 使用二分查找的思路构树(平衡二叉树完全就是,不过二叉搜索树有些遗憾)。特点:任一节点的权值都大于其左右子树上所有点的权值。 平衡二叉树: 简介:也是搜索树,不过它改进了:二叉搜索树由于插入顺序的不同,最坏查找次数也不同,运气不好就是O(n). 官方解释: 任一节点的平衡...原创 2020-02-29 17:17:38 · 479 阅读 · 0 评论 -
堆的插入,删除,创建C语言实现
温故而知新。。。昨天刚学了堆的网课,今天就迫不及待地要自己用代码实现了(有人可能会问为什么不昨天实现呢,这肯定不是因为懒,增加一下难度)。 堆地简介:结构上是数组形式地完全二叉树(特性:第i个节点的左子树为i2右子树为i2+1) 顺序上:任一父节点大于左右节点(最大堆),堆也可以解释为优先队列,比如操作系统的进程调度里就有其应用(一般情况下优先级最高的最先执行)。。。 //堆(优先队列,用来处理具...原创 2020-03-01 15:21:39 · 1240 阅读 · 1 评论 -
哈夫曼树(最小堆实现)
哈夫曼树:根据节点的查找频率构建更有效的搜索树 如何构造哈夫曼树:每次从堆中拿出两个权值最小的节点组成新的节点,并放入堆中。重复直到堆中只剩一个元素。 难点在于要保存每次合并后的新节点的地址(在哈夫曼树中的地址) 代码: //用最小堆来实现哈夫曼树的建立 //哈夫曼树简介:根据结点的额不同查找频率构造的更有效的搜索树 #include<iostream> #include<st...原创 2020-03-06 17:48:57 · 1356 阅读 · 0 评论