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

输出有向图的邻接矩阵相关推荐

  1. 有向图的邻接矩阵和邻接表画法

    本例子展示有向图画邻接表和邻接矩阵,反过来也是如此 大三时自学了了数据结构中的图,发现图中有邻接矩阵和邻接表,作为笔记记录下来 如下图所示,给了一个有向图,求邻接矩阵 怎么做呢? 第一步:和无向图类似 ...

  2. 邻接矩阵中啥时候写0和无穷_带权有向图的邻接矩阵中0和无穷大

    信息举报 时间:2020-12-23 本页为您甄选多篇描写带权有向图的邻接矩阵中0和无穷大,带权有向图的邻接矩阵中0和无穷大精选,带权有向图的邻接矩阵中0和无穷大大全,有议论,叙事 ,想象等形式.文章 ...

  3. 图的基本操作(C语言)

    图的基本操作 图(顺序存储) 无向图.有向图.无向网.有向网 编译器:VS Code 语言:C语言 图(顺序存储) 无向图.有向图.无向网.有向网 #include<stdio.h> #i ...

  4. 有向图邻接矩阵c语言编程,邻接矩阵有向图(一)之 C语言详解

    本章介绍邻接矩阵有向图.在"图的理论基础"中已经对图进行了理论介绍,这里就不再对图的概念进行重复说明了.和以往一样,本文会先给出C语言的实现:后续再分别给出C++和Java版本的实 ...

  5. 数据结构与算法(7-1)图的存储(邻接矩阵、邻接表)

    目录 一.图的邻接矩阵 存储结构 总代码 二.网图的邻接矩阵 存储结构 总代码 三.图的邻接表 存储结构 1.顶点列表结构体 2.邻接顶点结构体 总代码 四.网图的邻接表 存储结构 1.顶点列表结构体 ...

  6. 图的邻接矩阵(C语言)

    邻接矩阵 无向图和有向图在邻接矩阵中的表示方法: 无向图和有向图大同小异,在这里只以无向图为例,代码部分通过简单调整即可对应编译有向图 邻接矩阵数据类型定义 #define MaxVertices 1 ...

  7. C++语言实现-邻接矩阵

    一. 图的概念 图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合.在图中的数据元素,我们称之为顶点( ...

  8. 图的存储--邻接矩阵和邻接表(链表实现和用vector实现)

    邻接矩阵: #include<iostream> #include<vector> #include<iomanip> #include<string> ...

  9. 【无标题】有向图的创建、求度和遍历

    输入有向图的顶点和弧,创建有向图(邻接矩阵或邻接表),并完成下列任务:(1)计算各结点的出度.入度以及度,输出;  (2) 从第一个顶点出发,深度优先遍历图,输出遍历序列;  (3) 从第一个顶点顶点 ...

  10. 数据结构—邻接矩阵存储法代码实现

    邻接矩阵法 图的邻接矩阵(adjacency matrix)是一种采用邻接矩阵数组表示顶点之间相邻关系的存储结构.设G=(V,E)是含有n(n>0)个顶点的图,各顶点的编号为0~(n-1),则G ...

最新文章

  1. 实时传输协议(RTP)
  2. ROS-Baxter抓取
  3. 2021年泰晤士世界大学学科排名公布!清北均有学科位居世界前10
  4. observable_Java Observable addObserver()方法与示例
  5. Beamer演示时不能正常显示底栏的问题及解决
  6. Docker学习总结(31)——使用Maven插件构建docker镜像
  7. 八皇后算法带给我们的启示吧
  8. 【C++项目】boost搜索引擎项目
  9. 女孩,既要懂得暧昧,又要懂得拒绝 【20cn 依依】
  10. 动态内存的申请和非动态内存的申请_深圳罗湖“限制非深户申请公办学位”惹争议,官方权威回应来了...
  11. mysql left outer join_关于mysql中的left join和left outer join的区别
  12. 迅雷2014C++研发笔试卷C
  13. 如何做抖音自媒体?这些小技巧一定要掌握
  14. 语音处理:PCM文件中采样值到dB分贝的转换分析
  15. 喜串(二分递归+传递下标)
  16. 初识Vulkun(9):图形流水线/管道
  17. Java 第九次平时作业
  18. GSMA移动360会议首次亮相马来西亚
  19. PHPExcel设置默认列宽
  20. java 打码_Java基础(一)

热门文章

  1. matlab差分方程实验报告,实验二微分方程与差分方程模型matlab求解.doc
  2. PHP for循环时模拟计算进度
  3. #includesome_file.h和#includemy_file.h的区别
  4. 旁边一位员工天天跟别人聊天,主管都不敢管,那你当什么主管
  5. dpkg-checkbuilddeps: error: Unmet build dependencies: build-essential:native
  6. 全网首发:FFMpeg使用NVIDIA DECODER,解码后的数据是NV12,不是YUV420P
  7. 是谁逼着我们996,逼着企业996
  8. 火车套餐惊现2013年豆浆
  9. 解决安卓GridView的横向滚动问题
  10. idea非活动变更列表中的文件被修改,IntellJ IDEA中的更改列表是什么?一个变化列表比较什么?寻求准确的解释...