有向图的邻接表存储
来源:互联网 发布:三国志9优化伴侣win10 编辑:程序博客网 时间:2024/05/17 04:28
#include <cstdio>#include <cstdlib>#define MaxNum 10 //最大顶点数//表结点typedef struct endoe{int adjvex;endoe *next;}endoe;//定点结点typedef struct vnode{char vertex;endoe * first_edge;}node;//图结构typedef struct ALGraph{vnode adj_list[MaxNum];int n,e;} ALGraph;//定位顶点Vex的下标位置int Locate_vex(ALGraph* G,char vex){for(int i=0;i<G->n;++i)if(G->adj_list[i].vertex==vex)return i;}//创建图void CreateGraph(ALGraph * G){endoe* temp=NULL;int vex1,vex2;int i,j,k;int old_i=-2,old_j=-2;printf("\n请输入有向图的顶点名称:");for(i=0;i<G->n;++i){scanf("\n%c",&G->adj_list[i].vertex);G->adj_list[i].first_edge=NULL;}printf("\n请输入有向图中每条弧的弧尾顶点和弧头顶点名称:\n");for(k=1;k<=G->e;++k){printf("\n请输入第 %d 条弧的弧尾顶点名称:",k);scanf("\n%c",&vex1);printf("请输入第 %d 条弧的弧头顶点名称:",k);scanf("\n%c",&vex2);i=Locate_vex(G,vex1);j=Locate_vex(G,vex2);temp=(endoe*)malloc(sizeof(endoe));temp->adjvex=j;temp->next=G->adj_list[i].first_edge;G->adj_list[i].first_edge=temp;}}//打印图的信息void PrintGraph(const ALGraph * G){int i;endoe* temp=NULL;printf("\n\n有向图有 %d 个顶点:",G->n);for(i=0;i<G->n;++i)printf(" %c ",G->adj_list[i].vertex);printf("\n\n有向图有 %d 条弧:",G->e);for(i=0;i< G->n;++i){printf("\n%c -> ",G->adj_list[i].vertex);temp=G->adj_list[i].first_edge;while(temp){printf("%c ",G->adj_list[temp->adjvex].vertex);temp=temp->next;}}printf("\n");}//测试代码int main(){ALGraph G;printf("\n有向图的邻接表结构存储.....");printf("\n\n请输入有向图的顶点数:");scanf("%d",&G.n);printf("\n请输入有向图有多少条弧:");scanf("%d",&G.e);CreateGraph(&G);PrintGraph(&G);printf("\n");return 0;}
0 0
- 有向图的邻接表存储
- 用邻接表存储有向图
- 有向图的邻接表类
- 有向图的邻接表实现
- 有向图的邻接表储存
- 有向图的邻接链表
- 判断邻接表存储的有向图是否有环
- 无向图的邻接表存储
- 邻接表存储有向图并计算出入度
- 使用邻接表存储有向图模板
- 有向图-邻接表
- 邻接表存储有向图的两种遍历方式
- 求有向图的强连通分支(邻接表存储)C++实现
- 用邻接表存储有向图,并输出各顶点的出入和入度
- 用邻接表存储n个顶点m条弧的有向图
- 求有向图的强连通分支(邻接表存储)C++实现
- 用邻接表存储有向图实现的dfs和bfs
- 用邻接链表存储无向图和有向图
- WPF Template模版之寻找失落的控件【三】
- 黑马程序员----objective-C 面向对象三个基石之继承与多态
- Android之NetworkOnMainThreadException异常
- Spring MVC 教程,快速入门,深入分析
- 深度学习方法:受限玻尔兹曼机RBM(三)模型求解,Gibbs sampling
- 有向图的邻接表存储
- arm-linux内核启动学习笔记(二)(废弃)
- 介绍一些Emacs功能强大的函数
- hibernate_Restrictions用法
- 解决fedora下webstorm中文字符不显示的问题
- main方法与命令行参数
- hdu 2062 Subset sequence
- C++11新特性
- Git学习笔记(七)---分支管理