两顶点的路径长度为k_计算两个顶点之间的所有可能路径

两顶点的路径长度为k

What to Learn?

学什么?

How to count all possible paths between two vertices?

如何计算两个顶点之间的所有可能路径?

In the graph there are many alternative paths from vertex 0 to vertex 4

在图中,有许多从顶点0到顶点4的替代路径。

    1.	0 → 1 → 2 → 3 → 4
2.	0 → 1 → 4
3.	0 → 3 → 2 → 1 → 4
4.	0 → 3 → 4

Graph 7 Example

Algorithm:

算法:

Here we use a recursive method to detect all the paths of a graph,

在这里,我们使用递归方法来检测图的所有路径

  1. We start the recursive function with the starting vertex.

    我们从起始顶点开始递归函数。

  2. For each node

    对于每个节点

    1. Whenever we visited one vertex we mark it and go for all its unvisited adjacent nodes.
    2. If we found the destination vertex then count the number else we go for recursive call.
    Check(current node){
visit[curr_node]=true;
if(curr_node == destination){
count++;
}
else{
for( all the adjacent vertices ){
if(not visited yet) then
check(adjacent vertex);
}
}
}

C++ implementation:

C ++实现:

#include <bits/stdc++.h>
using namespace std;
//Make a pair between vertex x and vertex y
void addedge(list<int>*ls,int x,int y){
ls[x].push_back(y);
ls[y].push_back(x);
}
//count the number of paths exists
void path_count(list<int>*ls,int s,int d,bool *visit,int &count){
visit[s]=true;
if(s==d){
count++;
}
else{
list<int>::iterator it;
for(it=ls[s].begin();it!=ls[s].end();it++){
if(!visit[*it]){
path_count(ls,*it,d,visit,count);
}
}
}
visit[s]=false;
}
int main()
{
list<int> ls[6];
addedge(ls,0,1);
addedge(ls,2,3);
addedge(ls,3,4);
addedge(ls,4,5);
addedge(ls,1,2);
addedge(ls,1,4);
addedge(ls,3,0);
bool visit[6];
for(int i=0;i<6;i++){
visit[i]=false;
}
int count=0;
path_count(ls,0,4,visit,count);
cout<<"Paths are : "<<count<<endl;
return 0;
}

Output

输出量

Paths are : 4

翻译自: https://www.includehelp.com/data-structure-tutorial/count-all-the-possible-path-between-two-vertices.aspx

两顶点的路径长度为k

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542575.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

covariance matrix r语言_时间序列分析|ARIMAX模型分步骤详解和R中实践

这是关于时间序列的第N篇文章&#xff0c;本文将介绍ARIMAX模型&#xff0c;简单来说就是在ARIMA的基础上增加一个外生变量。ARIMAX和ARIMA相比在理论上没有太多新的内容&#xff0c;所以本文直接介绍在R里怎么一步一步跑ARIMAX。在阅读这篇文章前&#xff0c;需要对ARIMA有一定…

linux系统编程之文件与I/O(六):fcntl 函数与文件锁

2013-05-14 11:26 8290人阅读 评论(2) 收藏 举报分类&#xff1a;linux系统编程&#xff08;19&#xff09; 版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 一、fcntl函数 功能&#xff1a;操纵文件描述符&#xff0c;改变已打开的文件的属性 int…

bandizip最后一个无广告版本_如果非要选择一款压缩软件的话——Bandizip

全世界只有不到0.00~1 % 的人关注了我们得到你的关注是小帮的幸运压缩解压软件是电脑一个必备软甲&#xff0c;前面的文章介绍了一款开源小巧无广告的压缩解压软件windows工具软件选择之压缩软件——7-Zip&#xff0c;如果有人用不惯的话可以试试今天的这款。Bandizip 是一款来…

[MVC学习笔记]1.项目结构搭建及单个类在各个层次中的实现

新人刚开始学习ASP.NET MVC&#xff0c;若有不足之处希望能得到您的指点&#xff0c;不胜感激&#xff01; 先来一张项目的层级结构图: Model&#xff1a;模型层&#xff0c;主要是各种类型、枚举以及ORM框架&#xff0c;框架完成数据库和实体类的映射。项目中选用了微软的开源…

mybatisplus代码生成器_想做时间管理大师?你可以试试Mybatis Plus代码生成器

1. 前言对于写Crud的老司机来说时间非常宝贵&#xff0c;一些样板代码写不但费时费力&#xff0c;而且枯燥无味。经常有小伙伴问我&#xff0c;胖哥你怎么天天那么有时间去搞新东西&#xff0c;透露一下秘诀呗。好吧&#xff0c;今天就把Mybatis-plus的代码生成器分享出来&…

c++ websocket客户端_websocket使用

websocket使用一、介绍在项目开发过程中&#xff0c;很多时候&#xff0c;我们不可避免的需要实现的一个功能&#xff1a; 服务端实时发送信息给客户端。比如实时公告、实时订单通知、实时报警推送等等&#xff0c;登录后的客户端需要知道与它相关的实时信息&#xff0c;以便进…

在cordova中使用HTML5的多文件上传

2019独角兽企业重金招聘Python工程师标准>>> 我们先看看linkface给开放的接口&#xff1a; 字段类型必需描述api_idstring是API 账户api_secretstring是API 密钥selfie_filefile见下方注释需上传的图片文件 1&#xff0c;上传本地图片进行检测时选取此参数selfie_ur…

linux常用命令和配置

2019独角兽企业重金招聘Python工程师标准>>> 启动php&#xff1a; /etc/init.d/php-fpm restart 查看PHP运行目录&#xff1a; which php /usr/bin/php 查看php-fpm进程数&#xff1a; ps aux | grep -c php-fpm 查看运行内存 /usr/bin/php -i|grep mem iptables如…

centos7时间同步_centos 8.x系统配置chrony时间同步服务

centos 8.x系统配置chrony时间同步服务CentOS 7.x默认使用的时间同步服务为ntp服务&#xff0c;但是CentOS 8开始在官方的仓库中移除了ntp软件&#xff0c;换成默认的chrony进行时间同步的服务&#xff0c;chrony既可以作为客户端向其他时间服务器发送时间同步请求&#xff0c;…

ICWAI和ICWA的完整形式是什么?

ICWAI / ICWA&#xff1a;印度成本与工程会计师协会/印度儿童福利法 (ICWAI / ICWA: Institute of Cost and Works Accountants of India / Indian Child Welfare Act) 1)ICWAI&#xff1a;印度成本与工程会计师协会 (1) ICWAI: Institute of Cost and Works Accountants of In…

crontab 日志_liunx 中定时清理过期日志文件

问题描述经常遇到日志文件过多&#xff0c;占用大量磁盘空间&#xff0c;需要定期删除过期日志。问题涉及方面删除过期日志的脚本。定时任务删除任务脚本先查询到过期的日志文件&#xff0c;然后删除。语法find path -option [ -print ] [ -exec -ok command ] …

将搜索二叉树转换为链表_将给定的二叉树转换为双链表(DLL)

将搜索二叉树转换为链表Given a Binary tree and we have to convert it to a Doubly Linked List (DLL). 给定二叉树&#xff0c;我们必须将其转换为双链表(DLL)。 Algorithm: 算法&#xff1a; To solve the problem we can follow this algorithm: 为了解决这个问题&#…

cuda编程_CUDA刷新器:CUDA编程模型

CUDA刷新器&#xff1a;CUDA编程模型 CUDA Refresher: The CUDA Programming Model CUDA&#xff0c;CUDA刷新器&#xff0c;并行编程 这是CUDA更新系列的第四篇文章&#xff0c;它的目标是刷新CUDA中的关键概念、工具和初级或中级开发人员的优化。 CUDA编程模型提供了GPU体系结…

java 逻辑表达式 布尔_使用基本逻辑门实现布尔表达式

java 逻辑表达式 布尔将布尔表达式转换为逻辑电路 (Converting Boolean Expression to Logic Circuit) The simplest way to convert a Boolean expression into a logical circuit is to follow the reverse approach in which we start from the output of the Boolean expre…

python自然语言处理书籍_精通Python自然语言处理pdf

自然语言处理&#xff08;NLP&#xff09;是有关计算语言学与人工智能的研究领域之一。NLP主要关注人机交互&#xff0c;它提供了计算机和人类之间的无缝交互&#xff0c;使得计算机在机器学习的帮助下理解人类语言。 本书详细介绍如何使用Python执行各种自然语言处理&#xff…

通达oa 2013 php解密,通达OA漏洞学习 - 安全先师的个人空间 - OSCHINA - 中文开源技术交流社区...

说明通达OA漏洞在去年上半年已爆出&#xff0c;这不趁着周末没事做&#xff0c;将源码下载下来进行复现学习。文件包含测试文件包含检测&#xff0c;payload1:ip/ispirit/interface/gateway.php?json{"url":"/general/../../mysql5/my.ini"}利用文件包含访…

公众号 -「前端攻略 开光篇」

作为一枚程序员&#xff0c;每件重要项目的开始都忍不住使用"Hello World"。 这个公众号是不是来晚了&#xff1f;如果你有这个疑问&#xff0c;那么我想说&#xff1a;对于写作和思考&#xff0c;任何时候都不晚。我用四个简单的自问自答&#xff0c;来讲讲这个前端…

matlab中求模最大,matlab求取模极大值时出错

本帖最后由 Nate_ 于 2016-4-17 15:57 编辑points1024 时&#xff0c;有波形输出&#xff0c;但信号有5438个点。改为5438就不行。主程序&#xff1a;%小波模极大值重构是采用的交替投影法close all;points5438; level4; sr360; num_inter6; wfdb4;%所处理数据的…

【分享】linux下u盘使用

2019独角兽企业重金招聘Python工程师标准>>> linux下u盘使用 方案一&#xff1a; Linux不像Windows一样&#xff0c;接上新硬件后可以自动识别&#xff0c;在Linux下无法自动识别新硬件的&#xff0c;需要手动去识别。USB移动存储设备通常被识别为sda1&#xff0c;…

swift 3.0 中使用 xib

文章写于2016年9月底&#xff0c;Xcode 8&#xff0c;swift 3.0真是蛋疼&#xff0c;折腾了很长时间&#xff0c;试了网上很多教程&#xff0c;结果又莫名的可以了&#xff01; 1.方法和OC中一样 将一个xib文件和一个ViewController类进行关联的几步操作&#xff1a; command &…