数据结构
GilgameshG
00000
展开
-
最小生成树PRIM算法
什么是最小生成树,请大家看看离散数学书. 自定义结构体#define Max 100#define MaxNode 10typedef char VexType;typedef int AdjType;typedef struct{ int n; VexType vexs[MaxNode];//保存节点 AdjType arcs[MaxNode][MaxNode];原创 2016-10-26 09:21:18 · 933 阅读 · 1 评论 -
并查集求最小生成树
什么是并查集请点这里 prime算法求最小生成树,本程序的题目条件来源于这篇文章 之前写过prime算法求最小生成树的代码,昨天知道了并查集算法后,就用并查集算法再写一遍求最小生成树的题目。# include <stdio.h># include <stdlib.h># include <algorithm>//读本程序之前 先看一下prime算法求最小生成树那个文章链接,看题目要求in原创 2017-10-11 21:23:54 · 633 阅读 · 0 评论 -
hdu-1233最小生成树并查集求解
# include <iostream># include <algorithm>using namespace std;int root[110] = {0};typedef struct Node{ int a; int b; int c;}Node;Node bian[5100];bool comp(Node a,Node b){ return a原创 2017-11-12 19:41:11 · 270 阅读 · 0 评论 -
spaf算法求最短路径
# include <iostream># include <queue>using namespace std;#define N 7int g[7][7] = {{0,24,8,15,-1,-1,-1},{24,0,-1,-1,6,-1,3},{8,-1,0,-1,7,3,-1},{15,-1,-1,0,-1,-1,4},{-1,6,7,-1,0,2,9},{-1,-1,3,原创 2017-11-02 11:05:07 · 738 阅读 · 0 评论 -
hdu2544-最短路径spaf
spaf算法解题#include<iostream>#include<queue>using namespace std;int g[101][101]={0};bool is[101] ;int dis[101];void spaf(int n,int w){ queue<int> queue; queue.push(w); memset(is,false,s原创 2017-11-10 19:53:05 · 458 阅读 · 0 评论 -
dp-01背包问题代码
这是没有经过空间优化的代码,不过我感觉容易理解#include <iostream>using namespace std;int max(int a,int b){ return a>b?a:b;}void find(int best[12][12],int weight[10],int value[10],int i,int n){ int a[10]={0};原创 2017-11-09 21:22:17 · 418 阅读 · 0 评论 -
并查集解决最优灌溉问题(最小生成树问题)
并查集解决最优灌溉问题(最小生成树问题)以下都是个人理解,解释别人写好的代码,随便写写 1.什么是并查集 是一种数据结构,其实也就是一种树结构 把i节点的父节点保存在array[i]数组里,根节点的父节点为自身。 对于这种数据结构可以实现的功能有两个 (1)查找一个节点的根节点,通过数组里保存的父节点一层一层向上查找,知道找到一个节点的父节点是自己,那这个节点就是根节点了。 (2)判断两原创 2017-10-10 21:41:44 · 596 阅读 · 0 评论 -
c++中优先队列的使用(自定义排序函数)
这只是写一下自己遇到的问题#include<queue>//先包含一个头文件priority_queue<int> queue;//定义一个优先队列默认从大到小排序,因为是优先队列呀 如果我们想从小到大排序就需要自定义排序函数了bool operator > ( Node a,Node b) //这里的参数如果是Node* 并不知道为什么{ return a.num > b.nu原创 2017-10-17 22:22:53 · 6002 阅读 · 0 评论 -
杭电OJ-1285(队伍排名)
题目链接 因为输出格式不对错了几次,用到了拓扑排序的思路,不过写本题目的时候最耗时间的是研究自定义优先队列排序的方法。#include<iostream>#include<queue>#include<functional>using namespace std;typedef struct Node{ queue<int> list;//记录后继结点 int degre原创 2017-10-17 21:44:55 · 566 阅读 · 0 评论 -
跳跃链表纯代码
看到一个程序员说他的梦想是活过40岁,另一个说他的梦想是活过今年,不知道他们有没有结婚。。。。 今天就只贴一下自己修改的跳跃链表的代码,因为逻辑我自己也不是很懂。。。 先看一下自定义的结构体typedef struct Skip_Node{ int value; struct Skip_Node* forward[1];//越界访问 下标为几就是指向第几层的指针}Ski原创 2016-10-24 19:57:36 · 757 阅读 · 0 评论 -
对小甲鱼哈弗曼树代码的小修改
只是记录一下自己写作业的过程,我不是一个程序员,我是一个想进德云社的闲散人员 一.自己对huffman树的理解 先用程序读入一篇或多篇英文文章,把文章中出现的每一个字符都当做树结构中的一个节点,并且给每个节点附上一个权值(该字符在文章中出现的次数),通过这些权值,构成最小生成树。这就是huffman树的建立过程。最小生成树建立好以后,每个字符都会有一个由二进制数构成的编码,可以根据这些编码对一串原创 2016-10-23 11:47:47 · 996 阅读 · 2 评论 -
dijkstra算法求最短路径
希望大家能看完prim算法后再来看这个算法,因为两者思路差不多。 先来看一下自定义的结构体typedef char VexType;typedef int AdjType;typedef struct{ int n; VexType vexs[MaxNode];//保存节点 AdjType arcs[MaxNode][MaxNode];//从矩阵获得节点与节点间的距离原创 2016-10-27 18:39:52 · 735 阅读 · 0 评论 -
聪明学生问题代码
这个代码结构并不复杂,大家可以直接复制下来运行。大家在看代码之前请先自行了解什么是聪明学生问题.来看一下整体代码# include <stdlib.h>//找出t2--t1最小提问次数int step(int t1,int t2){ if(t2 > t1) { return t2-t1; } else { return 3原创 2016-10-26 17:00:03 · 638 阅读 · 1 评论 -
[蓝桥杯] 剪邮票问题
从网上看到的别人的代码,稍微修改了一下,先看一下原博主怎么写的吧 **原博主问题描述与代码** 下面的代码 我只是加了一些注释,少于了两个把邮票块数值转换为行列坐标的数组,因为水平不够,那两个数组的使用让我理解起来很困难,所以我就去掉了# include <iostream># include <cstring>using namespace std;int result = 0;int原创 2018-03-10 10:19:00 · 540 阅读 · 0 评论