操作用邻接表存储的图
本次实践将对用邻接表存储的图进行按要求操作,运用起所建立的图的算法库。本次实践所用到的算法库点击此处参考。(编译环境:VC++6.0)
本次实践的具体要求如下:
假设图G采用邻接表存储,分别设计实现以下要求的算法: 
(1)输出出图G中每个顶点的出度; 
(2)求出图G中出度最大的一个顶点,输出该顶点编号; 
(3)计算图G中出度为0的顶点数; 
(4)判断图G中是否存在边<i,j>。 
利用下图作为测试用图,输出结果。 

实现源代码如下:
//*Copyright  (c)2017,烟台大学计算机与控制工程学院*
//*All rights reservrd.*
//*文件名称 :main.cpp*
//*作者:田长航*
//*完成时间:2017年11月16日*
//*版本号:v1.0*
//*问题描述:测试函数*
//*输入描述:无*
//*程序输出:无*
#include <stdio.h>
#include <malloc.h>
#include "graph.h"//返回图G中编号为v的顶点的出度
int OutDegree(ALGraph *G,int v)
{ArcNode *p;int n=0;p=G->adjlist[v].firstarc;while (p!=NULL){n++;p=p->nextarc;}return n;
}//输出图G中每个顶点的出度
void OutDs(ALGraph *G)
{int i;for (i=0; i<G->n; i++)printf("  顶点%d:%d\n",i,OutDegree(G,i));
}//输出图G中出度最大的一个顶点
void OutMaxDs(ALGraph *G)
{int maxv=0,maxds=0,i,x;for (i=0; i<G->n; i++){x=OutDegree(G,i);if (x>maxds){maxds=x;maxv=i;}}printf("顶点%d,出度=%d\n",maxv,maxds);
}
//输出图G中出度为0的顶点数
void ZeroDs(ALGraph *G)
{int i,x;for (i=0; i<G->n; i++){x=OutDegree(G,i);if (x==0)printf("%2d",i);}printf("\n");
}//返回图G中是否存在边<i,j>
bool Arc(ALGraph *G, int i,int j)
{ArcNode *p;bool found = false;p=G->adjlist[i].firstarc;while (p!=NULL){if(p->adjvex==j){found = true;break;}p=p->nextarc;}return found;
}int main()
{ALGraph *G;int A[7][7]={{0,1,1,1,0,0,0},{0,0,0,0,1,0,0},{0,0,0,0,1,1,0},{0,0,0,0,0,0,1},{0,0,0,0,0,0,0},{0,0,0,1,1,0,1},{0,1,0,0,0,0,0}};ArrayToList(A[0], 7, G);printf("(1)各顶点出度:\n");OutDs(G);printf("(2)最大出度的顶点信息:");OutMaxDs(G);printf("(3)出度为0的顶点:");ZeroDs(G);printf("(4)边<2,6>存在吗?");if(Arc(G,2,6))printf("是\n");elseprintf("否\n");printf("\n");return 0;
}
运行结果截图如下:



数据结构上机实践第11周项目2 - 操作用邻接表存储的图相关推荐

  1. 第十二周项目二----操作用邻接表存储的图

    /*烟台大学计算机与控制工程学院 时间2015年12月14日 作者:孙潇 问题描述:假设图G采用邻接表存储,分别设计实现以下要求的算法: (1)输出出图G中每个顶点的出度: (2)求出图G中出度最大的 ...

  2. 数据结构上机实践第11周项目1 - 图基本算法库

    图基本算法库   本次实践将建立图的基本算法库,用以丰富算法库,灵活应对更多样的工程,所谓"技多不压身",算法亦如此.   本次实践将运用多文件组织工程的建立,点击此处参考.(编译 ...

  3. 数据结构上机实践第11周项目3 - 图遍历算法实现

    图遍历算法实现 本次实践将运用图结构基本算法库,进行遍历操作的实现,本次实践到的算法库点击此处参考.(编译环境:VC++6.0) 1.深度优先遍历--DFS 测试用图: 测试时用的图是,可以使用其他类 ...

  4. 数据结构实践——操作用邻接表存储的图

    本文是针对[数据结构基础系列(7):图]的实践. [项目 - 操作用邻接表存储的图] 假设图G采用邻接表存储,分别设计实现以下要求的算法: (1)输出出图G中每个顶点的出度: (2)求出图G中出度最大 ...

  5. 数据结构上机实践第三周项目2 - 建设“顺序表”算法库

    [项目2 - 建设"顺序表"算法库]  领会"0207将算法变程序"部分建议的方法,建设自己的专业基础设施算法库.这一周,建的是顺序表的算法库.  算法库包括两 ...

  6. 数据结构上机实践第八周项目2- 建立链串的算法库

    建立链串的算法库 一般每一种数据结构都不会局限于在连续空间内的存取,那我们的串自然也不反常,本次实践将建立链串的算法库,应用于有需求的工程当中,提高程序的容错性. 本次实践依然会用到多文件组织工程的建 ...

  7. 数据结构上机实践第十周项目2 - 用二叉树求解代数表达式

    用二叉树求解代数表达式 本次实践所用到的二叉树算法库点击此处参考 编译环境(VC++6.0) 项目要求如下: 用二叉树来表示代数表达式,树的每一个分支节点代表一个运算符,每一个叶子节点代表一个运算数( ...

  8. 数据结构上机实践第五周项目2 - 建立链栈算法库

    建立链栈算法库 链式存储和顺序存储方式各有特点,各有缺点,上次实践建立了顺序栈的算法库,本次实践将建立链栈的算法库,用以应多更多多样化的问题.(编译环境:VC++6.0) 本次建立算法库需要建立多文件 ...

  9. 数据结构上机实践第五周项目1- 建立顺序栈算法库

    建立顺序栈算法库 本次实践将建立顺序栈的算法库,用以解决更多的工程问题,提供便利.(编译环境:VC++6.0) 建立算法库将会用到多文件组织工程的建立,本次实践不再细说,点击此处可参考. 建立好的工程 ...

最新文章

  1. Mongodb 添加删除分片与非分片表维护
  2. Problem A: 平面上的点——Point类 (I)
  3. linux 挂起 移动电脑,linux 系统挂起
  4. linux 本地yum 恢复,Linux_RHEL系统恢复安装光盘中的yum更新源的方法,安装光盘本地YUM更新源挂载安 - phpStudy...
  5. linux自学(四)之开始centos学习,网络配置
  6. 算法题目——整数划分(HRBUST-2004)
  7. LeetCode 1366. 通过投票对团队排名(自定义排序)
  8. 高性能爬虫原理与应用
  9. 2018年数学建模竞赛-高温作业专用服装设计
  10. 大学计算机基础流媒体,大学计算机基础经典课件.ppt
  11. EXCEL复制公式时,某些参数为固定单元格的计算公式
  12. 统一社会信用代码校验规则
  13. Gini和AUC的关系(Gini=2AUC-1真的成立吗?)
  14. win10显示无法连接到Internet但是能上网
  15. Xmind 8 pro 软件破解版(重点推荐)
  16. PE和CDlinux二合一启动盘制作
  17. docker容器 如何精简镜像减小体积
  18. 迭代训练集,随机抽取batch_size数量的图片,报错索引超出范围index out of range
  19. 恶劣天气中如何拍摄360全景图片?
  20. 直接在服务器上跑系统,在服务器上跑代码

热门文章

  1. bzoj 1696: [Usaco2007 Feb]Building A New Barn新牛舍
  2. java实现linux中gzip压缩解压缩算法:byte[]字节数组,文件,字符串,数据流的压缩解压缩
  3. jquery基本选择器:id选择器、class选择器、标签选择器、通配符选择器
  4. 微波网络中参考面移动对散射参量的影响
  5. 如何解决Ubuntu桥接模式无法联网
  6. Day02:requests请求库,selenium请求库
  7. linux 免密登录
  8. 【视频开发】CximageMat 、CximagelplImage 以及 lplImageMat的转换、像素位深度
  9. 概率论中的一些常见的分布与公式
  10. Linked List Two Finish