图的大体架构以及主要知识
来源:互联网 发布:adb devices 端口 编辑:程序博客网 时间:2024/05/18 20:47
首先把图分为4点来定义
1.什么是图
图的定义图就是由两个集合组成的含有定点集合以及边集合
分为有向图无向图
2.图的存储
邻接矩阵:
行:表示尾(通过遍历非0元素个数可以知道入度)
列:标示头(通过遍历非0元素个数可以知道出度)
const int MaxVex=100; //图中最大顶点数 typedef char VertexType; typedef struct vertex { int adjvex; VertexType data; //顶点的位置 }VType; typedef struct graph { int n,e; //n为顶点数,e为边数 VType vexs[MaxVex]; //顶点集合 int edges[MaxVex][MaxVex]; }AdjMatrix;
关联矩阵:
表示定点与边的关联关系的矩阵
邻接矩阵:
typedef struct node{ int adjvex; //邻接点域,存放与Vi邻接的点在表头数组中的位置 struct node *next; //链域,指示下一条边或弧指向的点}JD;表头接点:typedef struct tnode{ int vexdata; //存放顶点信息 JD *firstarc; //指示第一个邻接点}TD;TD ga[M]; //ga[0]不用
首先有一个表头之后存放n个结点每一个结点后跟n个结点包括指向指针结点域与后一个指针
边集数组:
typedef struct node{ int fromvex; //起点 int tovex; //终点 int weight; //权}EdgeElem;EdgeElem EdgeSet[EdgeNum];
3.图的遍历
深度优先遍历
从图的某一顶点V0出发,访问此顶点;然后依次从V0的未被访问的邻接点出发,
深度优先遍历图,直至图中所有和V0相通的顶点都被访问到;若此时图中尚有顶点未被访问,
则另选图中一个未被访问的顶点作起点,重复上述过程,直至图中所有顶点都被访问为止。
广度优先遍历
跟着边一层一层的访问
4.生成树
生成树:按照遍历的方式生成
最小生成数算法
普里姆算法
n个城市建立通讯网花费最低问题
第一步找与初始连接的权值最小的边
第二步找与这条边相连的边中最小的边
一直迭代知道所有的点都连接
#define M 30#define MAX 100void minispantree_PRIM(int ad[][M],int n) //n为起始顶点号{ int i,j,k,p,q,wm; q=p=n-1; ad[q][q]=1; for(k=0;k<(n-1);k++) //每次找一条边,共需n-1条边 { wm=MAX; for(i=0;i<n;i++) //对n个点进行扫描 if(ad[i][i]==1) for(j=0;j<n;j++) //查找与已联入的点边权值最小的边 if( (i!=j) && (ad[i][j]<wm) && (ad[i][j]>0) && (ad[j][j]==0) ) { wm=ad[i][j]; p=i; q=j; } ad[q][q]=1; printf("%d %d %d\n",p+1,q+1,ad[p][q]); ad[p][q] =ad[q][p]= -ad[p][q]; }}迪杰斯特拉算法
求最短路径算法
依次迭代上一个数的最小值与n条路径比较
0 0
- 图的大体架构以及主要知识
- Android架构图以及主要类
- Android架构图以及主要类
- 一个项目的大体架构及想法。
- OpenMiner数据挖掘引擎的主要技术和大体框架
- ovs的主要代码函数及大体结构图
- 软件架构师的能力要求以及主要工作任务
- iphone系统架构以及各层提供的主要服务
- iphone系统架构以及各层提供的主要服务
- iphone系统架构以及各层提供的主要服务
- iphone系统架构以及各层提供的主要服务
- pdo大体知识
- YARN的主要架构
- 目前主要的mail 架构
- SQL Server主要知识架构——第一阶段总结
- 具备基本的编程功底能够有大体的轮廓知识
- CXF的大体原理
- Oracle的大体框架
- android开发需要掌握的一些常用命令
- 构建变种版本
- ASP解析JOSN
- SmartUpload上传下载
- SpringMVC+Mysql实例详解 .
- 图的大体架构以及主要知识
- iOS-Core-Animation-Advanced-Techniques(七)
- ASP解析UNCODI \0F24324 \0UAF
- 如何提高程序员的逼格
- oracle递归函数--oracle start with connect by 用法
- 理解:同步异步、阻塞非阻塞
- Qt的宏
- IIS6.0运行ftp与.NET权限设置
- 黑马程序员--iOS--C基础(一)