输出有向图的邻接矩阵
1 void dispmgraph(AdjMatrix adj)//输出有向图的邻接矩阵 2 { 3 int i,j,n,e; 4 n=adj.n; 5 e=adj.e; 6 printf("输出有向图的矩阵表示:\n"); 7 printf(" "); 8 for(i=0;i<n;i++) 9 printf("%3d",i); 10 printf("\n"); 11 for(i=0;i<n;i++) 12 { 13 printf("%3d",i); 14 for(j=0;j<n;j++) 15 if(adj.edges[i][j]==0) 16 printf(".."); 17 else 18 printf("%3d",adj.edges[i][j]); 19 printf("\n"); 20 } 21 }
1 void nattolist(AdjMatrix a,AdjList *&g) 2 { 3 int i,j,n; 4 n=a.n; 5 ArcNode *p; 6 for(i=0;i<n;i++) 7 g[i]->firstarc=NULL; 8 for(i=0;i<n;i++) 9 for(j=n-1;j>=0;j--) 10 if(a.edges[i][j]!=0) 11 { 12 p=(ArcNode*)malloc(sizeof(Arcnode)); 13 p->adjvex=j; 14 p->nextarc=g[i]->firstarc; 15 g[i]->firstarc=p; 16 } 17 } 18 19 int getnum(AdjList *g) 20 { 21 int i,n=0,visited[MAXVEX]; 22 for(i=0;i<MAXVEX;i++) 23 visited[i]=0; 24 dfs(g,0); 25 for(i=0;i<g->n;i++) 26 if(visited[i]==0) 27 { 28 n++; 29 dfs(g,i); 30 } 31 return n; 32 } 33 34 void dfs1(AdjList *g,int v) 35 { 36 int i; 37 ArcNode *p; 38 int visited[MAXVEX],top=-1,stack[MAXVEX]; 39 for(i=0;i<MAXVEX;i++) 40 visited[i]=0; 41 printf("%d ",v); 42 top++; 43 stack[top]=v; 44 visited[v]=1; 45 while(top>=0) 46 { 47 v=stack[top]; 48 top--; 49 p=g[v]->firstarc; 50 while(p!=NULL&&visited[p->adjvex]==1) 51 p=p->nextarc; 52 if(p==NULL) 53 top--; 54 else{ 55 v=p->adjvex; 56 printf("%d ",v); 57 visited[v]=1; 58 top++; 59 stack[top]=v; 60 } 61 } 62 } 63 64 65 #define MAXVEX 100 66 struct vertex 67 { 68 int num; 69 char data; 70 }; 71 typedef struct graph 72 { 73 int n; 74 int e; 75 struct vertex vexs[MAXVEX]; 76 int edges[MAXNVEX][MAXVEX]; 77 }AdjMatrix; 78 79 AdjMatrix creategraph() 80 { 81 int i,j,k,w,n,e; 82 char b,t; 83 AdjMatrix adj; 84 printf("顶点数(n)和边数(e):"); 85 scanf("%d%d",&n,&e); 86 adj.n=n; 87 adj.e=e; 88 for(i=0;i<n;i++) 89 { 90 printf(" 第%d个顶点的信息:",i+1); 91 scanf("%c",&adj.vex[i].data); 92 adj.vex[i].num=i; 93 } 94 for(i=0;i<n;i++) 95 for(j=0;j<n;j++) 96 adj.edges[i][j]=0; 97 for(k=0;k<e;k++) 98 { 99 printf("第%d条边:\n",k+1); 100 printf(" 起点:\n"; 101 scanf("%d",&b); 102 printf(" 终点:"); 103 scanf("%d",&t); 104 printf(" 权值:"); 105 scanf("%d",&w); 106 i=0; 107 while(i<n&&adj.vexs[i].data!=b) 108 i++; 109 if(i>=n) 110 111 } 112 }
转载于:https://www.cnblogs.com/zhangyongjian/p/3474995.html
输出有向图的邻接矩阵相关推荐
- 有向图的邻接矩阵和邻接表画法
本例子展示有向图画邻接表和邻接矩阵,反过来也是如此 大三时自学了了数据结构中的图,发现图中有邻接矩阵和邻接表,作为笔记记录下来 如下图所示,给了一个有向图,求邻接矩阵 怎么做呢? 第一步:和无向图类似 ...
- 邻接矩阵中啥时候写0和无穷_带权有向图的邻接矩阵中0和无穷大
信息举报 时间:2020-12-23 本页为您甄选多篇描写带权有向图的邻接矩阵中0和无穷大,带权有向图的邻接矩阵中0和无穷大精选,带权有向图的邻接矩阵中0和无穷大大全,有议论,叙事 ,想象等形式.文章 ...
- 图的基本操作(C语言)
图的基本操作 图(顺序存储) 无向图.有向图.无向网.有向网 编译器:VS Code 语言:C语言 图(顺序存储) 无向图.有向图.无向网.有向网 #include<stdio.h> #i ...
- 有向图邻接矩阵c语言编程,邻接矩阵有向图(一)之 C语言详解
本章介绍邻接矩阵有向图.在"图的理论基础"中已经对图进行了理论介绍,这里就不再对图的概念进行重复说明了.和以往一样,本文会先给出C语言的实现:后续再分别给出C++和Java版本的实 ...
- 数据结构与算法(7-1)图的存储(邻接矩阵、邻接表)
目录 一.图的邻接矩阵 存储结构 总代码 二.网图的邻接矩阵 存储结构 总代码 三.图的邻接表 存储结构 1.顶点列表结构体 2.邻接顶点结构体 总代码 四.网图的邻接表 存储结构 1.顶点列表结构体 ...
- 图的邻接矩阵(C语言)
邻接矩阵 无向图和有向图在邻接矩阵中的表示方法: 无向图和有向图大同小异,在这里只以无向图为例,代码部分通过简单调整即可对应编译有向图 邻接矩阵数据类型定义 #define MaxVertices 1 ...
- C++语言实现-邻接矩阵
一. 图的概念 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合.在图中的数据元素,我们称之为顶点( ...
- 图的存储--邻接矩阵和邻接表(链表实现和用vector实现)
邻接矩阵: #include<iostream> #include<vector> #include<iomanip> #include<string> ...
- 【无标题】有向图的创建、求度和遍历
输入有向图的顶点和弧,创建有向图(邻接矩阵或邻接表),并完成下列任务:(1)计算各结点的出度.入度以及度,输出; (2) 从第一个顶点出发,深度优先遍历图,输出遍历序列; (3) 从第一个顶点顶点 ...
- 数据结构—邻接矩阵存储法代码实现
邻接矩阵法 图的邻接矩阵(adjacency matrix)是一种采用邻接矩阵数组表示顶点之间相邻关系的存储结构.设G=(V,E)是含有n(n>0)个顶点的图,各顶点的编号为0~(n-1),则G ...
最新文章
- 实时传输协议(RTP)
- ROS-Baxter抓取
- 2021年泰晤士世界大学学科排名公布!清北均有学科位居世界前10
- observable_Java Observable addObserver()方法与示例
- Beamer演示时不能正常显示底栏的问题及解决
- Docker学习总结(31)——使用Maven插件构建docker镜像
- 八皇后算法带给我们的启示吧
- 【C++项目】boost搜索引擎项目
- 女孩,既要懂得暧昧,又要懂得拒绝 【20cn 依依】
- 动态内存的申请和非动态内存的申请_深圳罗湖“限制非深户申请公办学位”惹争议,官方权威回应来了...
- mysql left outer join_关于mysql中的left join和left outer join的区别
- 迅雷2014C++研发笔试卷C
- 如何做抖音自媒体?这些小技巧一定要掌握
- 语音处理:PCM文件中采样值到dB分贝的转换分析
- 喜串(二分递归+传递下标)
- 初识Vulkun(9):图形流水线/管道
- Java 第九次平时作业
- GSMA移动360会议首次亮相马来西亚
- PHPExcel设置默认列宽
- java 打码_Java基础(一)
热门文章
- matlab差分方程实验报告,实验二微分方程与差分方程模型matlab求解.doc
- PHP for循环时模拟计算进度
- #includesome_file.h和#includemy_file.h的区别
- 旁边一位员工天天跟别人聊天,主管都不敢管,那你当什么主管
- dpkg-checkbuilddeps: error: Unmet build dependencies: build-essential:native
- 全网首发:FFMpeg使用NVIDIA DECODER,解码后的数据是NV12,不是YUV420P
- 是谁逼着我们996,逼着企业996
- 火车套餐惊现2013年豆浆
- 解决安卓GridView的横向滚动问题
- idea非活动变更列表中的文件被修改,IntellJ IDEA中的更改列表是什么?一个变化列表比较什么?寻求准确的解释...