C++语言实现-邻接表

 图的邻接表实现

邻接表是图的一种链式存储结构。主要是应对于邻接矩阵在顶点多边少的时候,浪费空间的问题。它的方法就是声明两个结构。如下图所示:

先来看看伪代码:

typedef char Vertextype;

//表结点结构

struct ArcNode {

    int adjvex;   //某条边指向的那个顶点的位置(一般是数组的下标)。

    ArcNode * nextarc; //指向下一个表结点

    int weight;   //这个只有网图才需要使用。普通的图可以直接忽略

}; 

//头结点

struct Vnode

{

    Vertextype data;  //这个是记录每个顶点的信息(现在一般都不需要怎么使用)

    ArcNode * firstarc; //指向第一条依附在该顶点边的信息(表结点)

};

1、无向图

该无向图中表节点下的数字1、2、3、0对应的是头结点的下标,用此表示每个头结点与其他的哪些节点相连

2、有向图

该有向图中表节点下的数字1、2、3对应的是头结点的下标,用此表示每个头结点与其他的哪些节点具有指向关系

有向图的邻接表代码实现:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
const int max_v=100;int main()
{int v,e;int V[max_v];cin>>v>>e;///输入顶点和边的个数for(int i=0;i<v;i++){cin>>V[i];///输入顶点的值
    }int x,y;vector<int> G[max_v];  //vector的用法:https://blog.csdn.net/hancunai0017/article/details/7032383 
for(int i=0;i<e;i++){cin>>x>>y;G[x].push_back(y);///节点x的下一个节点是y }for(int i=0;i<v;i++){cout<<V[i]<<"->";for(int j=0;j<G[V[i]].size();j++)//此处的G[V[i]].size()的含义参考另一篇关于拓扑排序的博客{cout<<G[V[i]][j]<<' ';}cout<<endl;}return 0; }

输入:
5 6
0 1 2 3 4
0 1
1 3
2 1
3 0
3 2
4 3
结果显示:
0->1
1->3
2->1
3->0 2
4->3

转载于:https://www.cnblogs.com/LJHAHA/p/9960448.html

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

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

相关文章

为了适应云数据库mySQL产品_为了适应不同的应用场景,云数据库mysql版提供的产品系列包括哪些...

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

TestNG:在一个测试类中使用@DataProvider依次运行测试

许多Java开发人员和自动化测试工程师在他们的工作中都使用TestNG作为测试框架。 我也不例外。 这是一个显而易见的选择&#xff0c;因为TestNG提供了非常强大的工具集&#xff0c;使处理各种测试变得更加容易。 为了证明这一点&#xff0c;我将在本文中向您展示如何解决一项不平…

mysql 数据库读取_教你如何从 MySQL 数据库读取数据

PHP MySQL 读取数据从 MySQL 数据库读取数据SELECT 语句用于从数据表中读取数据:SELECT column_name(s) FROM table_name我们可以使用 * 号来读取所有数据表中的字段&#xff1a;SELECT * FROM table_name如需学习更多关于 SQL 的知识&#xff0c;请访问我们的 SQL 教程。使用 …

GXC 钱包部署

参考: [ 官方 wiki ] 基于 Ubuntu 的 GXC 部署 基础环境 OS: Ubuntugxc: 官方 [ release 最新版本 ]下载 release 包(ubuntu) cd /usr/src wget https://github.com/gxchain/gxb-core/releases/download/v1.0.181106b/gxb_ubuntu_1.0.1801106.tar.gz 拷贝可执行命令到系统 /usr…

js-js的全局变量和局部变量

*** 全局变量&#xff1a;在script标签里面定义一个变量&#xff0c;这个变量在页面中js部分都可以使用   - 在方法外部使用&#xff0c;在方法内部使用&#xff0c;在另外一个script标签中使用 *** 局部变量&#xff1a;在方法内部定义一个变量&#xff0c;只能在方法内部调…

使用Lucene的新FreeTextSuggester查找长尾建议

Lucene的“ 建议”模块提供了许多有趣的自动建议实现&#xff0c;以便在用户将每个字符输入搜索框时为他们提供实时搜索建议。 例如&#xff0c; WFSTCompletionLookup将所有建议及其权重编译到一个紧凑的有限状态传感器中 &#xff0c;从而可以对基本建议进行快速前缀查找。 …

Java属性中指定Json的属性名称(序列化和反序列化)

序列化对象&#xff0c;只需要使用注解"JsonProperty(value "pwd")" import com.fasterxml.jackson.annotation.JsonProperty;public class User{JsonProperty(value "pwd")private String password; } 比如上面例子&#xff0c;在作为请求接…

网站表单输入框去除浏览器默认样式

网页不可避免的使用到表单&#xff0c;提交一些内容到后端&#xff0c;进行前后端交互。可是由于浏览器总是有各自的默认样式&#xff0c;所以需要对其进行清除。总的来说有以下几种&#xff1a; 1、input输入框获取焦点的时候&#xff0c;默认带蓝色边框&#xff0c;如果设计要…

mysql 查看锁表日志_MYSQL 表锁情况查看

查看锁表情况mysql> show status like ‘Table%’;—————————-——–| Variable_name | Value |—————————-——–| Table_locks_immediate | 795505 || Table_locks_waited | 0 || Table_open_cache_hits | 0 || Table_open_cache_misses | 0 || Table_ope…

js-原始类型和声明变量

** Java的基本数据类型&#xff1a;byte、short、int、long、float、double、char、boolean ** 定义变量 都是用关键字 var(ES6中可以使用const和let来定义变量&#xff0c;后面会有ES6的语法介绍) ** js的原始类型&#xff08;5个&#xff09; - string&#xff1a;字符串  …

Java,Scala,Guava和Trove集合-它们可以容纳多少数据?

关于我们的数据结构&#xff0c;令人着迷的事情之一是&#xff0c;即使我们对它们非常熟悉&#xff0c;我们仍然很难说出像HashMap这样基本的东西在1GB的内存中可以容纳多少个项目。 我们可能会在学校&#xff0c;高级开发人员那里学到这一点&#xff0c;或者由于数据结构选择不…

spoj1026 favorite dice

1 #include <bits/stdc.h>2 using namespace std;3 int n,t;4 const int N 1200;5 double dp[N];6 /*7 甩一个n面的骰子&#xff0c;问每一面都被甩到的需要甩的次数期望是多少。8 dp[i]&#xff1a;已经甩到i个面了&#xff0c;要达到n个面还需要次数的期望9 显然dp[…

switch 失效

switch 开关失效无法切换&#xff0c;可以关闭&#xff0c;无法开启。 发现问题点 require-table.js 中toggle value的数据类型不是 number 导致 &#xff08;value ? no : yes )判断总为no&#xff1b; 前面将value 强制转换为number类型即可 转载于:https://www.cnblogs.c…

纯php socket mysql_PHP 连接 unix_socket MySQL

当MySQL使用Unix Socket启动时&#xff0c;直接使用localhost会发生了一个数据库错误&#xff0c;发生无法连接数据库错误。 Warning: mysql_connect() [function.mysql-connect]: [2002] 这时应当修改hostname&#xff0c;例如在CI 配置数据库 (database.php) 从&#xff1a; …

html-其他常见标签的使用

b&#xff1a;加粗 s&#xff1a;删除线 u&#xff1a;下划线 i&#xff1a;斜体 per&#xff1a;原样输出 sup:上标 sub:下标 p&#xff1a;段落标签 比br多一行 &#xff08;CSS&#xff09; div&#xff1a;自动换行 span&#xff1a;在一行显示 完整代码&#xff1a; <h…

在OpenShift上将JMS与JBoss A-MQ结合使用。 从远程客户端和加密中学到的经验教训。...

OpenShift是“红帽开发的开放式混合云应用程序平台”。 它具有不同的风格&#xff0c;对于大多数您想做的事情&#xff0c;最有趣的部分是公共云应用程序开发和托管平台“ OpenShift Online ”。 您可以轻松地尝试一下&#xff0c;因为在云中使用OpenShift Online是免费的&…

[Swift]LeetCode281. 之字形迭代器 $ Zigzag Iterator

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号&#xff1a;山青咏芝&#xff08;shanqingyongzhi&#xff09;➤博客园地址&#xff1a;山青咏芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;➤GitHub地址&a…

SpringBoot整合系列-PageHelper分页插件

原创作品&#xff0c;可以转载&#xff0c;但是请标注出处地址&#xff1a;https://www.cnblogs.com/V1haoge/p/9971043.html SpringBoot整合MyBatis分页插件PageHelper 步骤 第一步&#xff1a;首先整合MyBatis 参照之前SpringBoot整合系列-整合MyBatis 第二步&#xff1a;添加…

mysql为什么不能插入数据_mysql为啥不能插入数据

mysql为何不能插入数据&#xff1f;安装AppServ后首次使用mysql&#xff0c;没有图形界面&#xff0c;在“MySql Command Line Client”的操作如下&#xff1a;mysql> create database cars;Query OK, 1 row affected (0.00 sec)mysql> use cars;Database changedmysql&g…

scss-@extend

extend指令用于共享规则和选择器之间的关系。它可以扩展所有其他类的样式在一个类中&#xff0c;也可应用于自己特定的样式。 查看如下scssextend示例&#xff1a; .style{font-size: 30px;font-style: italic; }h2{color: #787878;extend .style} .container{extend h2 } 编译…