![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
pamela1115
这个作者很懒,什么都没留下…
展开
-
快速幂c++实现
根据公式,有两种实现方式,递归实现和非递归 递归实现 double pow1(double a,int b){ double ans = 1; int c = abs(b); if(c == 0) return 1; if(c == 1) return b > 0 ? b : 1/b; ans = pow(a,c>>1); ans *= ans; if(c &am...原创 2020-03-26 15:34:58 · 99 阅读 · 0 评论 -
Dijkstra算法实现
目的:求单源最短路径 辅助数组: 1、dist[]:用来记录源点到结点i的最短距离 2、s[]:用来记录结点i是否已经被收录 3、path[]:结点i是从path[i]过来的 算法步骤: 1、初始化: 如果两点之间没有直接路径,graph[i][j] 设置为最大值,否则记录每条边的权值 dist[]:如果有到源点的直接路径,则初始化为路径长度,否则初始化为最大值,表示没直接可达的路径。 s[]:除...原创 2020-03-14 17:19:38 · 91 阅读 · 0 评论 -
大根堆实现
大根堆是根节点的值都大于子树的值,左右子树又是一个大根堆 实现 头文件,堆结构 #include<iostream> using namespace std; #define MAXVALUE INT_MAX typedef int ElemtType; typedef struct Heap{ ElemtType* heap;//大根堆,顺序存储 int size; /...原创 2020-03-13 11:44:40 · 219 阅读 · 0 评论 -
小根堆
小根堆的构建可以通过插入构建或调整建堆来完成 头文件,堆结构 #include<iostream> using namespace std; typedef int ELemtType; #define MINVALUE -10000; typedef struct Heap{ ELemtType *arry; int size; int capacity; }*minHea...原创 2020-03-13 11:40:20 · 253 阅读 · 1 评论 -
哈夫曼树实现
利用了优先队列,实现了对哈夫曼树的创建,基于已经建好的哈夫曼树,对其进行编码,解码。 算法步骤: 1、初始化每个叶节点,n个叶节点就初始化为n棵树,构成森林; 2、利用优先队列,每次从森林中pop出两个权重最小的节点,生成新的节点,新节点的权重是它们俩的权重和,把新节点加入到森林里面(优先队列中); 3、重复以上过程n-1次,直到最后队列中只剩下一个节点; 结点结构: typedef struct...原创 2020-03-12 12:00:51 · 168 阅读 · 0 评论