考研
在下朱发财
我很懒
展开
-
深度优先搜索和宽度优先搜索
有手就行。#include<stdio.h>#include<stdlib.h>#include<iostream>#include<queue>#include<algorithm>using namespace std;struct zong{ char a[50]; int juzhen[50][50]; int n,e;};int vis[50];queue<int>q;void bfs(stru原创 2020-07-16 21:19:16 · 307 阅读 · 0 评论 -
拓扑排序
从没有入的点开始找就完了,找完入得点,删除他出的点的入度,不断找0 不断输出#include <stdio.h>#include <stdlib.h>#include <string.h>#define V 510 //最大顶点数int G[V][V]; //图int degree[V]; //记录各顶点的入度void topological_sort(int n) //拓扑排序函数{ int i, j, k; for.原创 2020-07-16 21:18:01 · 114 阅读 · 0 评论 -
floyd 佛洛依德算法
怎么硕呢,最起初的动态规划,用k一直在i和j之间反颠覆找更短的,如果更短就赋值。这不是有手就行?//核心代码 for (k=0;k<n;k++) //计算Ak { for (i=0;i<n;i++) for (j=0;j<n;j++) if (A[i][j]>(A[i][k]+A[k][j])) { A[i][j]=A[i][k]+A[k][j]; path[i][j]=k; } }...原创 2020-07-16 21:16:11 · 267 阅读 · 0 评论 -
克鲁斯卡尔算法(Kruskal算法) 考研计算机
相比较克鲁斯卡尔来说,prime 和 迪杰斯特拉是以点展开验证边。而克鲁斯卡尔是以边为展开看连接点点是否属于都一个跟(并查集) #include <stdio.h> #include <string.h> #include <algorithm> #define MAXN 11 //顶点个数的最大值 #define MAXM 20 //边的个数的最大值 using namespace std; //测试样例//7 12//1 2 12原创 2020-07-16 21:12:14 · 248 阅读 · 0 评论 -
(迪杰斯特拉)Dijkstra算法 与 普里姆算法(Prim算法)
怎么硕呢这俩肯定是一个人抄了另一个人的代码。就在花费那一部分 一个是d[u] = mp[u][v]+d[v] (迪杰斯特拉) 另一个是d[u] = mp[u][v]大体思路就是一直找和以之节点相通的节点之间最省钱的路径就完了。相比较克鲁斯卡尔来说,一个是以点展开验证边。而克鲁斯卡尔是以边为展开看连接点点是否属于都一个跟(并查集)#include<stdio.h>#include<string.h>#define INF 0x3f3f3f3f//测试样例/..原创 2020-07-16 21:11:23 · 1768 阅读 · 0 评论 -
考研之二叉排序树BST
有一说一 王道的代码是真的垃圾,简单的装下懂,然后难得就不写了,买你的书是让我自己悟啊?二叉排序树的删除 挺复杂的。直接改成文字叙述了,研究了好久 ,把代码整出来了。废话不多说,上代码:#include<iostream>#include<stdlib.h> using namespace std;struct BiTree{ int data; struct BiTree *left,*right; };bool isleft = false; str原创 2020-07-12 15:53:22 · 179 阅读 · 0 评论 -
指针在函数之间传递的简单理解
最近开始研究考研的代码,写函数的时候发现跟实际自己以往写程序的时候不同,多了一个&。才发现原来自己以前为了不去区分指针的地址和数据的关系,还有在函数之间的传递。导致现在已经不会使用指针了,做题全靠全局变量。但是现在时代变了,很多面试和考研些东西的都是都是要用指针的。所以复习了一下。本人不建议看别人写的理论来区别指针,因为本来就很难区分。可以自己哪里不懂先试试,然后再去看。邓爷爷说过,实践是检验真理的唯一标准。所以,上代码。#include<iostream&g原创 2020-07-11 21:38:15 · 1238 阅读 · 0 评论