【算法导论】22.1 图的转置
来源:互联网 发布:游戏源码怎么看 编辑:程序博客网 时间:2024/04/28 13:18
用邻接表表示的图的转置算法,比较简单。
#include <iostream>using namespace std;#define N 8#define INFINITE 0x7fffffff#define WHITE 1#define GRAY 2#define BLACK 3//顶点结点结构 struct Vertex { Vertex * next;/*指向下一个顶点*/int id;/*节点的标志*/ Vertex():next(NULL),id(0){} }; //图结构struct Graph{Vertex *Adj[N+1];//N个顶点及邻接点头指针int color[N+1];//颜色 int p[N+1];//指向遍历树节点的父结点 int d[N+1];/*节点发现时间*/int f[N+1];/*节点结束遍历时间*/Graph(){ for(int i = 1; i <= N; i++) { Adj[i] = new Vertex;color[i]=WHITE;d[i] = 0;f[i] = 0;p[i] = 0;}}~Graph() { for(int i = 1; i <= N; i++) delete Adj[i]; } };void Print(Graph *g);bool Init(Graph *g);bool InsertEdge(Graph *g , int start,int end);void PaintColor(Graph *g,int vertex,int color);void DepthFirstVisit(Graph *g,int vertex,int& v_time);//插入边bool InsertEdge(Graph *g , int start,int end){Vertex* v = new Vertex();v->id = end;if(g->Adj[start]->next == NULL){/*如果不存在临界表的头结点列表中,则插入*/Vertex* s = new Vertex();s->id = start;g->Adj[start] = s;}Vertex* tmp = g->Adj[start];while(tmp->next){tmp = tmp->next;}tmp->next =v;return true;}/*图的转置方法*/bool TransposedMap(Graph *g,Graph *gt){if((g == NULL) || (gt == NULL)){return false;}for(int i=0;i<N;i++){Vertex * v = g->Adj[i];while(v){InsertEdge(gt,v->id,i);}}}
- 【算法导论】22.1 图的转置
- 算法导论 ch22 图的基本算法
- [算法导论]图的基本算法
- 算法导论之图的基本算法
- 《算法导论》笔记 第22章 22.1 图的表示
- 算法导论22.1图的表示 练习总结
- 算法导论 第二十二章:图的搜索
- 图的广度优先搜索----算法导论
- 图的深度优先搜索----算法导论
- 算法导论22.1-3
- 算法导论22.1-6
- 算法导论22.1-7
- 算法导论 第22章 图的基本算法 22.1 图的表示
- 算法导论 第22章 图的基本算法 22.1 图的表示
- 算法导论-第22章-基本的图算法-22.1 图的表示
- 算法导论之图算法
- 《算法导论》学习笔记-图的基本算法
- 算法导论代码 第22章 图的基本算法
- 程序员面试题精选100题(12)-从上往下遍历二元树
- 读《算法导论》我来C语言实现(3)——堆排序和优先级队列
- POJ 3114 Countries in War
- 自己动手,打造自己的硬件驱动-----成功安装Mac OS X Leopard 10.6.3
- 泛型方法+反射,解决静态可变类参数问题
- 【算法导论】22.1 图的转置
- 网上SQL问题连载4
- Android开发 权限大全,经常写好的功能为啥没运行?可能就是权限没有设定了!如下:
- 网上SQL问题连载5
- gtest
- 85 wpf sl操作.TXT文件
- 网上SQL问题连载6
- 网上SQL问题连载7
- Android提高第十五篇之ListView自适应实现表格