数据结构
沉梦昂志️
这个作者很懒,什么都没留下…
展开
-
图的遍历——判断两点之间是否相连
#include <iostream>#include <queue>const int maxsize=100;using namespace std;int a[maxsize];int n,m; int x,y; int adjex[10]; queue<int>q; int visited[100]; int edge[10][10]; int Bfs(int i,int j) { q.push(i); visited[原创 2021-12-27 08:45:00 · 577 阅读 · 0 评论 -
经典排序算法
快排:#include <iostream>const int maxsize=100;using namespace std;int a[maxsize];int kuaipai_first(int a[],int first,int last){ int i=first; int j=last; while(i<j) { while(a[i]<=a[j]&&i<j){j--;} if原创 2021-12-27 09:00:00 · 220 阅读 · 0 评论 -
【数据结构】全网最全二叉树的基本操作(判断完全二叉树、打印叶子节点、找双亲)
#include <iostream>const int maxsize=100;using namespace std;struct binode{ char data; binode *lchild,*rchild;};class bitree{public: bitree(){root=creat(root);} ~bitree(){release(root);} void preorder(){preorder(root);}原创 2021-12-27 08:30:00 · 138 阅读 · 0 评论 -
图的遍历——链式前向星
#include <iostream> using namespace std;const int N=20;struct n{ int to,next, w;}t[2*N];int h[2*N],p=1;void add(int u,int v,int w){ t[p].to=v;//// 存储u点指向哪个点 t[p].w=w;// 存储边长 t[p].next=h[u]; h[u]=p++;}int main(){原创 2021-12-15 13:18:54 · 1011 阅读 · 0 评论 -
数据结构——图的遍历(dfs和bfs)
#include<iostream>using namespace std;const int N = 1000;//图的遍历int visit[N];int edge[N][N];int v[N];int n,e,x,y;void dfs(int num){ cout<<v[num]; visit[num]=1; for(int i=1;i<=n;i++) { if(edge[num][i]==1&&原创 2021-12-13 14:04:16 · 476 阅读 · 1 评论 -
拓扑排序模板
模板提//图论 拓扑排序#include <iostream>#include <queue>#include <vector>using namespace std;priority_queue<int,vector<int>,greater<int>> Q;int inDegree[120]; //代表顶点的入度vector<int> G[120];//二维动态数组G[i][j]表示从i到j的有向联通原创 2021-11-21 21:30:13 · 384 阅读 · 0 评论 -
Floyd算法模板(+打印路径)
#include<iostream>#include<cstring>#include<queue>const int INF=0x3f3f3f;using namespace std;int g[1000][1000];int path[1000][1000];int n,m;int s,t;void print(){ printf("Path: %d", s); int cur = s; while (cur != t) {原创 2021-11-21 12:38:43 · 705 阅读 · 0 评论 -
非常详细的Folyd求最短路径模板+例题Hdu1385
Floyd算法思想:简单的dp(背包放与不放),即经过图中某个点k的路径和不经过点k的路径,即找两者的最短路径if(g[i][j]>g[i][k]+g[k][j]){g[i][j]=g[i][k]+g[k][j];}#include<iostream>#include<cstring>#include<queue>const int INF=0x3f3f3f;using namespace std;int g[1000][1000];int n原创 2021-11-19 08:13:34 · 164 阅读 · 0 评论 -
c++图论——Dijkstra求最短路径问题模板
1.朴素Dijkstra求最短路例题我们需要用到两个数组一个数组用来记录1号点到每个点的最短距离另一个记录每一个点的最短路是否已经确定#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N = 510;int n, m;int g[N][N]; //稠密图一般使用邻接矩阵int dist[N]; //记录每个节点距离起点的距离原创 2021-11-19 07:42:32 · 336 阅读 · 0 评论 -
(PK)图论--最小生成树——Prim和Kruscal 模板
1.图论–最小生成树–prim 模板int prim(int v){ int edge[maxsize][maxsize];//邻接矩阵 int n;//结点个数 int adjvex[maxsize],lowercost[maxsize]; for(int i=0;i<n;i++) { lowercost[i]=edge[v][i]; adjvex[i]=v; } lowercost[v]=0; for(int原创 2021-11-16 18:40:26 · 564 阅读 · 0 评论