深度优先生成树
来源:互联网 发布:linux安装软件步骤 编辑:程序博客网 时间:2024/04/25 10:13
#include <stdio.h>#include <stdlib.h>#define MAXSIZE 20typedef struct node{ int adjvex; struct node * next;}Node;typedef struct{ int vertex; Node * first;}VNode;int visited[MAXSIZE];void create(VNode g[],int n,int e){ //创建无向图的邻接表 Node * p; int i,j; for(int k=0;k<n;k++){ g[k].vertex = k; g[k].first = NULL; } for(int t=0;t<e;t++){ printf("请输入连通边i->j\n"); scanf("%d,%d",&i,&j); p = (Node *)malloc(sizeof(Node)); p->adjvex = j; p->next = g[i].first; g[i].first = p; p = (Node *)malloc(sizeof(Node)); p->adjvex = i; p->next = g[j].first; g[j].first = p; }}void DFS(VNode g[],int i){ Node * p; p = g[i].first; visited[i] = 1; while(p != NULL){ if(!visited[p->adjvex]){ printf("(%d,%d) ",i,p->adjvex); DFS(g,p->adjvex); }else{ p = p->next; } }}void DFSTree(VNode g[],int n,int e){ //深度优先生成树 create(g,n,e); for(int t=0;t<n;t++){ visited[t] = 0; } for(int k=0;k<n;k++){ if(!visited[k]){ DFS(g,k); } }}int main(){ VNode g[MAXSIZE]; int n,e; printf("请输入节点的个数!\n"); scanf("%d",&n); printf("请输入边的条数!\n"); scanf("%d",&e); DFSTree(g,n,e); return 0;}
0 0
- 深度优先生成树
- 深度广度优先遍历最小生成树
- 深度优先搜索、广度优先搜索及其生成树
- 深度优先搜索应用_深度优先生成树&&割点判断
- 深度优先迷宫生成类
- 深度优先搜索生成迷宫
- 无向图的深度优先生成树
- 深度优先生成树(无向图,邻接矩阵,DFS)
- 邻接矩阵实现图+深度/广度优先遍历+最小生成树
- 邻接矩阵实现图+深度/广度优先遍历+最小生成树
- 图的深度优先搜索算法并生成DFS树
- 数据结构学习_图(1)深度优先搜索、广度优先搜索和最小生成树
- 图的深度优先(非递归)、广度优先、最小生成树的C++实现
- 图的邻接表(广度优先遍历,深度优先遍历,最小生成树(Kruskal算法))
- 图与路径(深度优先,广度优先,最小生成树)
- 图的深度优先搜索(DFS),广度优先搜索(BFS)与最小生成树(MST)
- 有向图无向图领接表深度优先广度优先最小生成树
- 数据结构--图的深度优先搜索,广度优先搜索,生成树的边集
- 在JavaScript中创建命名空间的几种写法
- Hibernate基础
- sqoop导入mysql到HDFS时报错:java.lang.NoClassDefFoundError: org/json/JSONObject
- 【View工作原理】ViewRoot、DecorView、MeasureSpec和LayoutParams
- Linux 文件类型与扩展名
- 深度优先生成树
- ajax传递值
- memcache(四)memcache调优
- JDBC连接数据库——添加
- android 输入法,里面还集成语音输入
- 最美文言风
- 我的后半生生活
- Linux 文件属性详解
- Oracle 删除重复数据只留一条