C数据结构学习历程(5) 图之数组表示法
来源:互联网 发布:sql查询不重复记录 编辑:程序博客网 时间:2024/04/25 15:21
我是参照《严蔚敏数据结构ppt》http://wenku.baidu.com/view/3ff16fc20242a8956aece41d.html以及《严蔚敏c数据结构视频》来写的,因为ppt上有些错,而视频上的代码不全,自己另写了。ppt上错哪,我就不指出了,大家可以对照着看,就能发现不同之处。其中图这部分主要是《大话数据结构》来的。对于图前面的知识,之前写了但是忘了上传。
对于图的数组表示法,记住struct里 包含几个变量就行。
#include<iostream>using namespace std;typedef char VertexType; //顶点类型typedef int EdgeType; //边上的权值类型#define MAXVEX 100#define INFINITY 65535 //用这个值代表无穷typedef struct{VertexType vexs[MAXVEX]; //顶点表EdgeType arc[MAXVEX][MAXVEX]; //邻接矩阵int numVertexes ,numEdges; //图中当前的顶点数和边数}MGraph;//建立无向图的邻接矩阵void CreateMGraph(MGraph *G){int i,j,k,w;cout<<"输入顶点数和边数:"<<endl;cin>>G->numVertexes >>G->numEdges ;for(i=0;i<G->numVertexes ;i++){cout<<"输入顶点值:"<<endl;cin>>G->vexs [i];}for(i=0;i<G->numVertexes ;i++)for(j=0;j<G->numVertexes ;j++)G->arc [i][j]=INFINITY; //邻接矩阵初始化for(k=0;k<G->numEdges ;k++){cout<<"输入边(vi,vj)上的下标i,下标j和权值w"<<endl; //从下标0开始cin>>i>>j>>w;G->arc [i][j]=w;G->arc [j][i]=w;}}//DFS算法,邻接矩阵形式的typedef int Boolean;Boolean visited[MAXVEX];void DFS(MGraph G,int i){visited[i]=true;cout<<G.vexs[i] <<endl; //打印 出来for(int j=0;j<G.numVertexes ;j++){if(!visited[j]&&G.arc [i][j]==1){DFS(G,j);}}}void DFSTraverse(MGraph G){for(int i=0;i<G.numVertexes ;i++) //初始化别忘了{visited[i]=false;}for(int i=0;i<G.numVertexes ;i++) //自己记下来的{if(!visited[i]){DFS(G,i);}}}int main(){MGraph p;CreateMGraph(&p);DFSTraverse(p);return 0;}
随便画的一个图,遍历如下 无向图
遍历结果为:
0 0
- C数据结构学习历程(5) 图之数组表示法
- C数据结构学习历程(5) 图之数组表示法的BFS
- C数据结构学习历程(7) 图之十字链表 表示法
- 数据结构之图的数组表示法
- C数据结构学习历程(6) 图之邻接表表示法
- 数据结构学习笔记 --- 图(数组表示法)
- 数据结构学习笔记 --- 图(数组表示法)
- C数据结构学习历程(4) 链栈之 括号匹配
- 数据结构之---C语言实现图的数组(邻接矩阵)存储表示
- 数据结构---图(数组表示法)
- 图的数组表示法-数据结构(18)
- C数据结构学习历程(1) 顺序表
- C数据结构学习历程(2) 链表
- 【嵌入式学习历程9】数据结构之栈
- 【嵌入式学习历程10】数据结构之队列
- 数据结构之图(C++)--邻接矩阵表示(一)
- 数据结构之---C语言实现数组的顺序存储表示(可运行)
- C数据结构学习历程(3) 顺序栈之 一般表达式转化后缀式
- 2016多校7 HDU 5818 Joint Stacks
- 好好学习天天向上
- hibernate获取session的两种方式
- 终于完全学会fdisk 分配虚拟机命令了
- Openjudge-逆序数
- C数据结构学习历程(5) 图之数组表示法
- ubuntu下安装UltraEdit失败
- 水仙花数
- openpyxl - 单元格样式
- MFC(四)——Menu
- hdu 5818 Joint Stacks(线段树)
- 购物单
- 探索SpringMVC(一)
- Codeforces Round #365 (Div. 2) (705A,705B(博弈),704A)