数据结构
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 · 196 阅读 · 0 评论 -
二叉搜索树的创建(插入)、查找、删除、遍历(中序非递归)
最近在学数据结构,前段时间学了二叉搜索树和平衡二叉树,但当时眼高手低就看了网课啥也没敲。。现在优点愧疚,就补上了。二叉搜索树:使用二分查找的思路构树(平衡二叉树完全就是,不过二叉搜索树有些遗憾)。特点:任一节点的权值都大于其左右子树上所有点的权值。平衡二叉树:简介:也是搜索树,不过它改进了:二叉搜索树由于插入顺序的不同,最坏查找次数也不同,运气不好就是O(n).官方解释:任一节点的平衡...原创 2020-02-29 17:17:38 · 452 阅读 · 0 评论 -
堆的插入,删除,创建C语言实现
温故而知新。。。昨天刚学了堆的网课,今天就迫不及待地要自己用代码实现了(有人可能会问为什么不昨天实现呢,这肯定不是因为懒,增加一下难度)。堆地简介:结构上是数组形式地完全二叉树(特性:第i个节点的左子树为i2右子树为i2+1)顺序上:任一父节点大于左右节点(最大堆),堆也可以解释为优先队列,比如操作系统的进程调度里就有其应用(一般情况下优先级最高的最先执行)。。。//堆(优先队列,用来处理具...原创 2020-03-01 15:21:39 · 1191 阅读 · 1 评论 -
哈夫曼树(最小堆实现)
哈夫曼树:根据节点的查找频率构建更有效的搜索树如何构造哈夫曼树:每次从堆中拿出两个权值最小的节点组成新的节点,并放入堆中。重复直到堆中只剩一个元素。难点在于要保存每次合并后的新节点的地址(在哈夫曼树中的地址)代码://用最小堆来实现哈夫曼树的建立//哈夫曼树简介:根据结点的额不同查找频率构造的更有效的搜索树#include<iostream>#include<st...原创 2020-03-06 17:48:57 · 1295 阅读 · 0 评论