采用邻接表创建无向图G ,依次输出各顶点的度。

函数接口定义:

void CreateUDG(ALGraph &G);

其中 G 是采用邻接表表示的无向图。

裁判测试程序样例:

#include <stdio.h>
#include <stdlib.h>
#define MVNum 100
typedef struct ArcNode{int adjvex; struct ArcNode *nextarc; int info;
}ArcNode; typedef struct VNode{ char data; ArcNode *firstarc;
}VNode, AdjList[MVNum]; typedef struct{ VNode vertices[MVNum]; int vexnum, arcnum;
}ALGraph;void CreateUDG(ALGraph &G);int main(){ALGraph G;     int i , j,sum=0;CreateUDG(G);ArcNode * p; for(i = 0 ; i < G.vexnum ; ++i){sum=0;p=G.vertices[i].firstarc;for(; p!=NULL; p=p->nextarc){sum+=1;}if(i==0)printf("%d",sum);elseprintf(" %d",sum);}return 0;
}/* 请在这里填写答案 */

输入格式:

输入第一行中给出2个整数i(0<i≤10),j(j≥0),分别为图G的顶点数和边数。
输入第二行为顶点的信息,每个顶点只能用一个字符表示。
依次输入j行,每行输入一条边依附的顶点。

输出格式:

依次输出各顶点的度,行末没有最后的空格。

输入样例:

5 7
ABCDE
AB
AD
BC
BE
CD
CE
DE

输出样例:

2 3 3 3 3

参考答案:

void CreateUDG(ALGraph &G){int n,m;scanf("%d %d",&n,&m);G.vexnum=n;G.arcnum=m;int i,j,k,key,temp;char t1,t2;getchar();for(i=0;i<n;i++){G.vertices[i].firstarc=(ArcNode*)malloc(sizeof(ArcNode));}for(i=0;i<n;i++){scanf("%c",&G.vertices[i].data);G.vertices[i].firstarc=NULL;}getchar();for(i=0;i<m;i++){scanf("%c%c",&t1,&t2);getchar();for(k=0;k<n;k++){if(G.vertices[k].data==t2)key=k;}for(j=0;j<n;j++){if(G.vertices[j].data==t1){temp=j;if(G.vertices[j].firstarc==NULL){ArcNode *q;q=(ArcNode*)malloc(sizeof(ArcNode));q->adjvex=k;G.vertices[j].firstarc=q;G.vertices[j].firstarc->nextarc=NULL;}else{ArcNode *p;ArcNode *q;q=(ArcNode*)malloc(sizeof(ArcNode));q->adjvex=k;p=G.vertices[j].firstarc;while(p->nextarc!=NULL){p=p->nextarc;}p->nextarc=q;q->nextarc=NULL;}}}if(G.vertices[key].firstarc==NULL){ArcNode *q;q=(ArcNode*)malloc(sizeof(ArcNode));q->adjvex=k;G.vertices[key].firstarc=q;G.vertices[key].firstarc->nextarc=NULL;}else {ArcNode *p;ArcNode *q;q=(ArcNode*)malloc(sizeof(ArcNode));q->adjvex=temp;p=G.vertices[key].firstarc;while(p->nextarc!=NULL){p=p->nextarc;}p->nextarc=q;q->nextarc=NULL;}}
}

没有优化,仅供参考。

6-6 采用邻接表创建无向图相关推荐

  1. 数据结构与算法A实验六图论---7-11 邻接表创建无向图

    采用邻接表创建无向图G ,依次输出各顶点的度. 输入格式: 输入第一行中给出2个整数i(0<i≤10),j(j≥0),分别为图G的顶点数和边数. 输入第二行为顶点的信息,每个顶点只能用一个字符表 ...

  2. 利用邻接表创建无向图

    #include<iostream> using namespace std; #define MVNum 100 #define OK 1 typedef char VerTexType ...

  3. 使用邻接表创建无向图和有向图

    图的邻接表表示法: 邻接表(Adjacency List) 是图的 一 种链式存储结构.在邻接表中,对图中每个顶点V建立一个单链表,把与 V相邻接的顶点放在这个链表中.邻接表中每个单链表的第一个结点存 ...

  4. 采用邻接表存储有向图,设计算法判断任意两个顶点间是否存在路径。设计算法,将一个无向图的邻接矩阵转换为邻接表。

    采用邻接表存储有向图,设计算法判断任意两个顶点间是否存在路径.设计算法,将一个无向图的邻接矩阵转换为邻接表. 采用邻接表存储有向图,设计算法判断任意两个顶点间是否存在路径. 设计算法,将一个无向图的邻 ...

  5. 图:图的邻接表创建、深度优先遍历和广度优先遍历代码实现

    邻接表介绍 邻接矩阵是不错的一种图存储结构,但是我们也发现,对于边数相对顶点较少的图,这种结构比较较浪费存储空间.如果不想浪费存储空间,大家肯定会先到链表.需要空间的时候再才想内存去申请,同样适用于图 ...

  6. 算法6.6 采用邻接表表示图的深度优先搜索遍历

    算法6.6 采用邻接表表示图的深度优先搜索遍历 代码实现 #pragma once #include <iostream>using namespace std;//图的邻接表存储表示 # ...

  7. 图2——利用邻接表创建有向图

    图2--利用邻接表创建有向图 图 假设以邻接表作为图的存储结构,编写算法,创建有向图并输出邻接表. 主要考查对邻接表的理解.图的邻接表分为两个部分:表头结点和边表结点,因此创建有向图也分成两部分:一是 ...

  8. 基于广度优先遍历算法求采用邻接表存储的无向连通图G中从顶点u到v的最短路径

    问题 假设图G采用邻接表存储,设计一个算法,求不带权无向连通图G中从顶点u->v的最短路径(路径上经过的顶点数最少.采用广度优先遍历来实现. 基本思路 我们首先来看一下BFS的过程: 图片摘自慕 ...

  9. 邻接表-建立无向图、无向网、有向图、有向网

    #include<stdio.h> #include<stdlib.h> #define MAX_VERTEX_NUM 20 #define OK  1 #define ERR ...

最新文章

  1. OAF_EO系列2 - Validation数据校验验证机制(概念)
  2. 通过命令行使用 JAX-WS调用webservice
  3. linux cat EOF使用示例
  4. TortoiseSVN Unable to connect to a repository at URL XXX
  5. iOS内存管理(ARC,MRC)
  6. WPF中一个通用的BoolToXXX转换类
  7. linux说明是集群,集群——菜鸟学习Linux集群之概念篇
  8. [Luogu P2801]教主的魔法
  9. 编译原理 - SLR(1)
  10. linux驱动之poll/select轮询机制实例分析(结合驱动中断使用)
  11. 一文掌握字符串之正则表达式,值得收藏!
  12. gradle优化之 总体配置优化
  13. 输入输出流,看似复杂却更好用----小话c++(2)
  14. c语言通用数据结构和常用算法库,基于C语言的通用数据结构和算法库
  15. Java根据当前日期获取年初,年末,季初,季末,月初,月末日期的方法
  16. 条码打印软件中多列不干胶标签纸的设置方法
  17. 中序线索二叉树的创建、线索化和遍历
  18. Android 曝光采集,商品view曝光量的统计,判断RecyclerView中某子view是否可见 view是否显示在屏幕中 view展示次数统计...
  19. install java linux_Install Java7 on Ubuntu Linux
  20. 线束测试仪—汽车线束检测应用

热门文章

  1. buff系统 游戏中_原神buff状态有哪些 buff状态系统解析
  2. 拒绝安利:安利的真相 丁黎
  3. java tar.gz 格式多文件打包压缩与解压
  4. 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest:Gym 101667L
  5. python中 s是什么意思_这里面的s.name是什么意思啊?
  6. Java类加载与初始化机制实例分析
  7. 小冰的忍者团队,她在日本开启了怎样一种商业模式?
  8. [河内塔]汉诺塔实现
  9. 导出多个sheet的Excel以及在服务器上压缩文件然后再导出(在这里是压缩一个excel后导出)
  10. Python-List