第十一周项目 输出顶点出度,最大顶点编号,出度0的顶点和指定边_求图中出度最大的顶点编号-程序员宅基地

问题及代码

/*
*Copyright(c)2017,烟台大学计算机学院
*All right reserved.
*文件名:main.cpp btree.h btree.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");
    else
        printf("否\n");
    printf("\n");
    return 0;
}
算法库
结果




版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ons1wwx/article/details/78548947

智能推荐

Abaqus idle 3600 seconds 或 Process terminated by external request 问题解决_process terminated by external request (sigterm or-程序员宅基地

文章浏览阅读1.7w次,点赞4次,收藏32次。运行Abaqus一段时间后,出现Aborted,命令行窗口中出现Session has been idle for longer than 3600 seconds. Disconnecting fromAbaqus License Manager在status File中出现***ERROR: Process terminated by external request (SIGTERM or SIGINT received).但并没有点击kill命令参考解决方案https:/_process terminated by external request (sigterm or sigint received).

《网络与信息安全》重点整理_广义信息指凡是在一种情况下能减少不确定性的任何事物都可称为信息-程序员宅基地

文章浏览阅读2k次。1.凡是在一种情况下能减少不确定性的任何事物都叫做信息。2.信息具有若干属性,例如价值性、时效性、隐私性、安全性。3、4.信息安全是指使信息避免⼀系列威胁,保障 业务的连续性,最⼤限度地减少业务的损失,从而最大限度地获取投资和业务的回报。5.信息安全要素:机密性、完整性、可用性。6.机密性:确保信息不受未授权获取常见威胁:Shoulder surfing、网络监听、窃取文件、社会工..._广义信息指凡是在一种情况下能减少不确定性的任何事物都可称为信息

js 图片类型mage/jpeg, image/bmp, image/gif ,image/png-程序员宅基地

文章浏览阅读1w次。js 图片类型mage/jpeg, image/bmp, image/gif ,image/png_image/bmp

jmeter设置随机参数-uuid(带横线)_jmeteruuid设置长度-程序员宅基地

文章浏览阅读1.2k次。1、在jmeter工具:选择“函数助手对话框”2、在函数助手:下拉框选择“UUID”3、在函数助手:点击“生成”4、在函数助手:生成之后,得出函数字符串、随机值5、在http请求:设置随机参数..._jmeteruuid设置长度

Javaweb——————sql常用思维导图_java访问关系型数据库思维导图-程序员宅基地

文章浏览阅读3.4k次。_java访问关系型数据库思维导图

VUE3 ONE-PIECE_vue3 one piece-程序员宅基地

文章浏览阅读755次。他并没用将 job 对象中的每个 属性都用 ref 包裹而是用了 Proxy 的形式,并且我们使用 job 中的属性只要 job.value.type 不要 job.value.type.value 因为元素不在用 refimpl 包裹。现在我们知道要改变页面中的数据必须使用 .value 的形式 但模板中使用数据 不需要 .value 因为vue已经帮你用了.value。vue3 的新配置项 setup 是所有的 composition API 表演的舞台。_vue3 one piece

随便推点

小米运动手环数据导出_小米手环专注导出-程序员宅基地

文章浏览阅读1.9w次,点赞11次,收藏57次。小米手环记录了步数睡眠等信息,可以通过小米运动app在手机上查看,但是并未提供导出接口,如果想自己进行数据统计则需要采取一些手段。本文将介绍具体手段。0 数据文件无法查看当小米手环与手机连接后,小米运动会自动把手环中的数据导入到手机中,存储在小米运动存储的位置,但对大多数手机来说,无法直接看到数据文件,只能通过root等手段查看。但这并不影响我们将数据导出,但需要手机具有备份功能,小米运动a..._小米手环专注导出

Rocky Linux Docker安装_rocky linux 8.9 安装docker-程序员宅基地

文章浏览阅读2k次。Rocky Linux属于CentOS 8联网nmcli c reloadnmcli c up ens33安装Dockeryum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum install docker-ce -ysystemct._rocky linux 8.9 安装docker

解决/usr/bin/ld: cannot find -lmysqlclient错误_/usr/bin/ld: cannot find -lmysqlclient 64-程序员宅基地

文章浏览阅读1.8k次。类似/usr/bin/ld: cannotfind -xxxx的错误有很多, 首先我们可以最简单的判断一下:这类情况一般是由于缺乏某某库文件, 又或者可能是由于已存在的库问题版本不对造成的一般都是解决的办法就是安装缺乏的devel包就可以解决, 当然还有其他的未知因素, 我们看一个实例:我在一台装centos5.2 x86_64的系统上配置php环境, 提示这个错误"/usr/bi_/usr/bin/ld: cannot find -lmysqlclient 64

Linux中分区配额的设置,LVM逻辑卷的建立、扩展、压缩、删除_/dev/vdb1 2048 2099199 1048576 8e linux lvm-程序员宅基地

文章浏览阅读1.7k次。一、 配 额 超级用户[root@localhost ~]# fdisk /dev/vdb #新建一个分区[root@localhost ~]# mkfs.xfs /dev/vdb1 #格式化[root@localhost ~]# mount -o usrquota /dev/vdb1 /mnt [root@localhost ~]# chmod 7..._/dev/vdb1 2048 2099199 1048576 8e linux lvm

解决iis跨域问题_iis 跨域-程序员宅基地

文章浏览阅读5.4k次,点赞5次,收藏10次。解决iis跨域问题_iis 跨域

回归预测 | Matlab基于CPO-BP基于冠豪猪算法优化BP神经网络的数据多输入单输出回归预测_cpo冠豪猪算法-程序员宅基地

文章浏览阅读727次,点赞11次,收藏10次。回归预测 | Matlab基于CPO-BP基于冠豪猪算法优化BP神经网络的数据多输入单输出回归预测_cpo冠豪猪算法

推荐文章

热门文章

相关标签