![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
eryihahaha
这个作者很懒,什么都没留下…
展开
-
地图四染色问题——栈的回溯
"四染色"问题: 用不多于四种颜色对地图着色,使相邻的区域不重色。算法思想: 从第一个区域开始染色,每一个区域依次用颜色1,2,3,4进行试探,如果当前所试探的颜色与周围区域都不同色,则用栈记录该区域色数,否则用下一色数继续试探;如果四种颜色都与相邻区域重色,那么需要退栈,修改栈顶色数,即更改上一区域的颜色继续试探。#include<iostream>#include<st...原创 2020-03-23 21:42:34 · 2919 阅读 · 1 评论 -
算法——完善中
技巧1.比较大的数组要开在main函数后面否则程序可能无法正常运行2.使用重定向的文件方式测试数据更加方便 freopen("data.in","r",stdin); freopen("data.out","w",stdout);3.数组复制#include<string.h>memcpy(b,a,sizeof(a)) #将a复制到b中memset(b,0,sizeo...原创 2020-02-17 20:56:47 · 183 阅读 · 0 评论 -
树——哈夫曼树
哈夫曼树: 带权节点,对应的带权路径最小的一种树构造方法以图一为例:51+24+33+41+4*2=34怎么构建一个哈夫曼树,它又有什么特性呢特点二:每个元素都是叶节点,n个叶节点有一个n-1个父节点再加最大父节点(顶上)typedef struct TreeNode *HuffmanTree;struct TreeNode{ int Weight; HuffmanTre...原创 2020-02-02 16:17:50 · 290 阅读 · 0 评论 -
树——堆
1.堆非堆栈优先队列:取出的元素顺序是根据优先顺序进行的因而会有插入,查找与删除操作通过二叉树来实现,为了保证搜索效率1,每个根节点都要比它的叶节点大(小)——最大堆(最小堆)只需要父节点比子节点大,不需要右子大于左子2,完全二叉树(满二叉树或从右向左删除若干的)3,每一条路下去都是一个有序序列#include<stdio.h>typedef struct HeapSt...原创 2020-02-02 12:34:25 · 186 阅读 · 0 评论