- 博客(12)
- 资源 (2)
- 收藏
- 关注
原创 如何获取leetcode的解题思路
leetcode的官网是https://leetcode.com/,但是由于服务器并不在国内,更推荐访问速度更快的国内官网https://leetcode-cn.com/来进行刷题。点击右上角的登录后就可以注册或者登录了。 需要注意的是这里注册的账号是和英文官网不互通的,但是英文官网上的账号数据可以迁移到中文官网。完成登录后,我们可以点击页面上方的题库进入题目列表。 ...
2018-07-29 15:07:22
378
原创 破圈法求最小生成树 代码
template int AdjGraph::CircleDFS() { int v=0,*Num,n=0; resetMark();/*重置所有顶点的标记*/ stack s; s.push(v); while(!s.empty()) { v=s.top(); s.pop(); n++; Mark[v]=1; /*将与v节点邻接的所有未访问的节点入栈,并将标记设为1*/
2012-12-17 22:08:30
5209
原创 等价类 代码实现
#include "StdAfx.h" #include "UFSets.h" #include using namespace std; void UFSets::swap(int& a,int& b) { int i; i=a; a=b; b=i; } UFSets::UFSets(int size) { n=size; root=new int[n
2012-12-16 20:02:56
2078
原创 关键路径 代码实现
template bool AdjGraph::ModifyTopSort(int VE[100],int SortArray1[100])//对图进行拓扑排序,获得各个顶点事件的最早发生时间,将序列存放在数组SortArray中 { int n=vertexNum; int indegree[100];//创建一个数组记录各个顶点的入度 int v; for(v=0;v { in
2012-12-16 19:59:39
771
原创 拓扑排序
template bool AdjGraph::TopologySort(int SortArray[100])//对有向图进行拓扑排序,将序列存放在数组SortArray中 { int n=vertexNum; int *indegree=new int[n];//创建一个数组记录各个顶点的入度 int v; for(v=0;v { indegree[v]=0; Mark[v]
2012-12-16 19:48:13
316
原创 Floyd算法
template void AdjGraph::Floyd(EdgeType Adj[100][100],int Path1[100][100])//求出任意两个点间的最短距离 { int v;//v记录相应顶点 int n=vertexNum; for(int i=0;i { for(int j=0;j { if(i==j) { Adj[i][j]=0; Path1[i]
2012-12-16 19:46:02
299
原创 Dijkstra算法
template void AdjGraph::Dijkstra(int s,EdgeType D[100],int Path[100])//其中参数s是源点,D[i]是到i点到源点的最短距离,Path[i]是i的前驱结点 { int n=vertexNum; for(int i=0;i { Mark[i]=0; D[i]=1000; Path[i]=-1;//表示i点没有前驱结点
2012-12-16 19:41:57
343
原创 Kruskal算法
template Edge *AdjGraph::Kruskal() { int n=vertexNum; UFSets set(n);//定义n个结点的集合 Edge *MST=new Edge[n-1];//记录最小生成树的边 MinHeap> H(edgeNum);//定义含有edgeNum个元素的最小堆,edgeNum是图中边的个数 Edge edge; for(int i
2012-12-16 19:38:52
464
1
原创 Prim算法
template Edge *AdjGraph::Prim(int s)//应用Prim算法从s顶点出发得到的最小生成树 { int i,j; Edge *MST;//存储最小生成树的边,即各个顶点到生成树中的各个顶点的最短的边 int *neighbor;//neighbor[i]表示生成树的点中与i点最近的点编号,-1表示i点已经在生成树中 EdgeType *nearest;//
2012-12-16 19:19:01
408
原创 图的深度优先搜索
template void AdjGraph::DFS(int v)//从某个结点v开始进行深度优先搜索 { visit(v); Mark[v]=1; for(Edge e=firstEdge(v);isEdge(e);e=nextEdge(e))//访问v邻接到的未被访问的点,如果有则从该点开始深度优先搜索 { if(Mark[e.end]==0) DFS(e.end); }
2012-12-16 19:11:35
455
原创 有关调试的几点
问题一:通俗地说断点怎么用? 在VS2010中,首先设置好断点(F9),然后在Debug菜单下点选Start Debugging,程序就可以一下子运行到你的第一个断点处,然后再进行单步调试也不迟。这样就可以不用对之前一些毫无价值的语句进行单步调试了,只调试我们关心的 问题二:单步调试过程中有没有后退一步的办法? 一般没有,单步跟踪不可能回复上一步,因为内存已经改变了 问题三
2012-12-15 20:06:15
585
原创 列举编程中的常见错误和解决方案
每一条都背后都是有俺的血泪史的,数据结构书和课堂上上绝对不会说的 1.果断换用VS2010,抛弃VC++6.0 2.选中指定代码并按Tab可使其整体后移,按Shift+Tab可使其整体前移 3.遇到Can’t open the file forDebug…打开任务管理器选进程那页,找到你工程名字对应的.exe文件,结束任务之 4.多文件中的#include应该怎么写(解答:主程序应包含所有
2012-12-15 20:00:13
767
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人