首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Java中读入图的邻接表时,如何避免重复的边?

在Java中读入图的邻接表时,可以通过使用Set数据结构来避免重复的边。Set是一种不允许重复元素的集合,可以确保每个边只被添加一次。

具体步骤如下:

  1. 创建一个Set集合,用于存储边的信息。
  2. 读取图的邻接表数据。
  3. 对于每个顶点,遍历其邻接表中的每个邻接点。
  4. 对于每个邻接点,将其与当前顶点的边表示为一个字符串,例如"顶点1-顶点2"。
  5. 将该字符串添加到Set集合中。
  6. 继续遍历其他顶点的邻接表,重复步骤4和步骤5。
  7. 最后,Set集合中存储的就是去重后的边的信息。

这样,通过使用Set集合,重复的边将被自动去重,确保邻接表中不会出现重复的边。

推荐的腾讯云相关产品:腾讯云数据库TDSQL、腾讯云云服务器CVM、腾讯云容器服务TKE、腾讯云人工智能AI Lab等。

腾讯云产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 数据结构学习笔记(

    2.与线性、树比较: (1)线性我们把数据元素叫元素,树中将数据元素叫结点,图中数据元素,我们则称之为顶点。 (2)线性可以没有数据元素,称为空。树可以没有结点,叫做空树。...*无向用小括号“()”表示,而有向则用尖括号“”表示。 4.图中,若不存在顶点到其自身,且同一条重复出现,则称这样图为简单。...结点由adjvex和next两个域组成。adjvex是邻接点域,存储某顶点邻接顶点下标,next则存储指向中下一个结点指针。...*对于带权值得网,可以结点定义再增加一个weight数据域,存储权值信息即可。...**对于n个顶点e条来说,邻接矩阵方式访问需要O(n2)时间;对于邻接来说,需要O(n+e)时间。 显然对于点多边少稀疏来说,邻接结构使得算法时间效率上大大提高。

    831100

    数据结构——

    ] 无向邻接 同一个顶点发出链接在同一个链表,每一个链结点代表一条(结点)。...Vi)=单链表链接结点个数 有向邻接 [在这里插入图片描述] 空间效率: O(n+e) 出度:OD(Vi)=单链出链接结点数 入度:ID(Vi)=邻接点域为Vi弧个数 度:TD(Vi...ivex、jvex:该依附两个顶点在图中位置ilink:指向下一条依附于顶点ivexjlink:指向下一条依附于顶点jvexinfo:指向和相关各种信息指针域 链接存储(邻接...特点:图中可能存在回路,且任一顶点都可能与其它顶点相通,访问完某个顶点之后可能会沿着某些又回到了曾经访问过顶点。怎样避免重复访问 ?...稠密适于邻接矩阵上进行深度遍历; 稀疏适于邻接上进行深度遍历。

    80995

    算法:AOV网(Activity on Vextex Network)与拓扑排序

    ,vn,满足若从顶点vi到vj有一条路径,则在顶点序列顶点vi必vj之前,则我们称这样顶点序列为一个拓扑排序。 所谓拓扑排序,其实就是对一个有向构造拓扑序列过程。...由于拓扑排序过程,需要删除顶点,显然用邻接结构会更加方便,考虑到算法始终要查找入度为0顶点,我们可以原来顶点结点结构,增加一个入度域in, 即入度数字,上面所提到删除以某个顶点为尾操作也是通过将某顶点邻接...对于7-8-2第一幅AOV网,可以得到如第二幅邻接数据结构。 ?...另外,算法,还需要辅助数据结构--栈,用来存储处理过程入度为0点,目的是为了避免每次查找都要去遍历顶点找有没有入度为0顶点。...需要注意是上面有个通过邻接矩阵(事先确定)来生成邻接函数CreateALGraph,因为是有向,所以针对一 条只插入一次EdgeNode, 且初始化in注意是入度,即 (*GL)->adjList

    2.1K70

    为实习准备数据结构(11)-- 图论算法 集锦

    比如图2 和3,随便加哪两顶点都将构成环。 不过有n-1条并不一定是生成树,比如图4。 定义三:邻接邻接矩阵 理论上,就是一堆顶点和对象而已,但是怎么代码来描述呢?...有两种主要方法:邻接列表和邻接矩阵。 邻接列表实现,每一个顶点会存储一个从它这里开始列表。...当在E中选择一条具有最小权值,若该两个顶点落在不同连通分量上,则将此加入到 T ;否则重新选择一条权值最小 c....重复 b 步骤 总结:先遍历一遍还没有最短路径点,选出一个距离最近点,把它加入到最短路径并更新,直到所有的点都加入到最短路径。...对于带权值,可以结点定义再增加一个weight 数据域,存储权值信息即可,如下图所示。

    54820

    搜索(1)

    存储  讨论遍历问题之前,我们先来讨论一下存储问题,也就是我们写程序时候如何保存、表示一个。首先我们会用连续整数编号来表示点集。...图中每一个顶点i都有一个线性,保存与i相连顶点编号 ?  程序,一般用一个数组嵌套vector方法来表示邻接:vector g[N+1]。...用邻接复杂度是O(N+M),其中M是数  对于上图来说,深度优先搜索过程是这样 ?  ...如果遍历结束所有visited[]数组值全都是true,那么就说明整个是连通,否则就不是。...第19到第25行是在读入集数据,并保存在邻接表里。这里读入时候需要注意一些细节  一是重问题,也就是输入数据会不会有一条出现了1次以上。

    43210

    PHP数据结构(九) ——定义、存储与两种方式遍历

    8、无向邻接点:两个顶点A、B和其连接x都属于某个,则称这两个点A、B互为邻接点,连接x依附于这两个邻接点,A、B与x相关联。...对于无向,数组表示法表示是一个对称矩阵,可以仅存半个矩阵节约空间。 2、邻接 邻接采用链表结构,每条或弧有三个存储空间,分别表示第一个节点、权值、下一个节点位置。...3、十字链表 十字链表是针对有向一种存储方式,其结合了有向邻接和逆邻接邻接基础上,加一个字段,用于存储以此节点作为弧头位置。...4、邻接多重 邻接多重是针对无向一种存储方式。...使用此存储方式,主要是改进无向邻接存储一个缺点——改动其中任一内容,需要同时改动对应另一个内容,因为无向图中ab和ba是一样,改动ab内容,要同步改动ba内容。

    1.9K80

    社交网络分析 R 基础:(五)导入与简单分析

    如何将存储磁盘上邻接矩阵输入到 R 程序,是进行社交网络分析起点。在前面的章节已经介绍了基本数据结构以及代码结构,本章将会面对一个实质性问题,学习如何导入一个以及计算一些属性。...文件表示 导入一个 生成人工网络 基本分析 文件表示 计算机,最常见两种表示基本结构是邻接矩阵和邻接。...以最简单无权无向图为例,邻接矩阵第 行第 列元素 如果等于 1,则表示顶点 和顶点 之间有边,即邻接矩阵将所有节点之间关系都表示出来。...邻接则是对顶点 建立一个单链表,这个单链表由顶点 所有邻居节点构成,即邻接只是把存在关系节点表示出来。 网络上许多公开数据集更常使用三元组去表示一个。...下面是一个三元组示例,以第一行三元组 (1, 2, 1) 为例,它表示有一条从顶点 1 指向顶点 2 ,并且该权重为 1。对于无权而言,通常会省略三元组第三个元素。

    2.6K10

    数据结构简单要点总结(转)

    删除表头操作,入队尾添加结点。...实际使用B树都是原查找树基础上加上平衡算法,即“平衡二叉树”;如何保持查找树结点分布均匀平衡算法是平衡二叉树关键;平衡算法是一种B树插入和删除结点策略; B-树 是一种多路搜索树(并不是二叉...如果将邻接各顶点邻接变为其前驱顶点即可,从而得到逆邻接。 用邻接存储网络,需要将各条(弧)权值作为相应邻接结点中一个字段。...*/ edgenode *link; /* 表头指针 */} vexnode; /* 顶点结点 */vexnode gnode[n]; /* 整个构成 */ 建立无向邻接...nextadj(G, v, w):返回G顶点v邻接点中处于w之后那个邻接点。若不存在,返回0。

    36710

    数据结构与算法-存储结构

    邻接定义 邻接是顺序存储与链式存储相结合存储方法。 邻接,对图中每个顶点建立一个单链表,每个单链表链接图中与顶点相邻接所有顶点。...对于无向,第i个链表结点数为顶点Vi度;对于有向,第i个链表结点数为顶点Vi出度; (3). 稀疏邻接邻接矩阵省单元; (4)....邻接表表示检测数方面比邻接矩阵表示效率要高。 ? 3. 计算度 (1). 对于无向,第i个链表结点数为顶点Vi度; (2)....对于有向,第i个链表结点数只为顶点Vi出度;若要求入度, 必须遍历整个邻接单链表,其邻接点域值为i结点个数是顶点Vi入度。 (3). 对于有向,有时候就要建立一个邻接。...即队每个顶点Vi建立 一个以Vi为弧头邻接链表。这样,逆邻接第i个单链表 结点个数就是Vi入度。 4. 带权邻接 带权邻接结点包含一个权重域,如下所示。 ?

    1.5K30

    数据结构基础温故-5.(上):基本概念

    同样,我们也可以考虑对边或弧使用链式存储方式来避免空间浪费问题。   邻接由表头节点和节点两部分组成,图中每个顶点均对应一个存储在数组表头节点。...结点由adjvex和next两个域组成。adjvex是邻接点域,存储某顶点邻接点在顶点下标,next则存储指向中下一个结点指针。...例如:v1顶点与v0、v2互为邻接点,则在v1,adjvex分别为v00和v22。 PS:对于无向来说,使用邻接进行存储也会出现数据冗余现象。...(3)带权:对于带权值,可以结点定义再增加一个weight数据域,存储权值信息即可,如下图所示。 ?...);   ②有向 View Code   ③如何添加   实现,无论是无线图还是有向都是添加有向,只不过无向是添加了两条有向: View Code   (3)打印每个顶点及其邻接信息

    71620

    数据结构 第六章

    简单图中,若不存在顶点到其自身,且同一条重复出现。 数据结构讨论都是简单。...在线性,数据元素编号就是元素序列位置,因而其编号是唯一,将结点按层序编号,由于树具有层次性,因而其层序编号也是唯一图中,任何两个顶点之间都可能存在,顶点是没有确定先后次序...因图中可能存在回路,某些顶点可能会被重复访问,那么如何避免遍历不会因回路而陷入死循环? 解决方案:附设访问标志数组visited[n] 。...有向邻接(出) 求顶点 i 出度: 顶点 i 结点个数。 求顶点 i 入度: 各顶点以顶点 i 为终点结点个数。...; 输入顶点信息,初始化该顶点; 依次输入信息并存储; 3.1 输入所依附两个顶点序号i和j; 3.2 生成邻接点序号为j结点s; 3.3 将结点s插入到第i个头部

    43921

    无向----无向实现

    术语: 多重图:将含有平行称为多重图。 简单:将没有平行和自环称为简单。 相邻:当两个顶点通过一条相连,称这两个顶点相邻,并称这条依附于这两个顶点。...度数:一个顶点度数即依附于它总数。 简单路径:是一条没有重复顶点路径。 简单环:是一条(除了起点和终点必须相同外)没有相同顶点环。 路径或环长度:其中所包含数。...对于含有上百万个顶点,V^2空间需求是不能满足邻接数组:可以实现。使用一个以顶点为索引列表数组,其中每个元素都是和该顶点相邻顶点列表。...邻接Java语言实现: public class Graph { private int V;//顶点数 private int E;//数 private Bag[]...为此,我们会为相关任务创建相关类,然后采用组合方式,算法类组合使用数据结构类。接下来深度优先遍历和广度优先遍历可以看到相关实现。

    2K00

    【愚公系列】软考中级-软件设计师 020-数据结构(

    邻接优点是存储空间相对较小,缺点是查询两个节点之间是否有连接需要遍历链表,时间复杂度可能较高。...使用邻接矩阵存储,需要考虑到数组大小限制和存储方式。通常可以使用二维数组、动态数组或稀疏矩阵等数据结构来实现邻接矩阵存储。...2.2 邻接邻接是一种常用存储方式,它使用一个数组来存储图中每个顶点,数组每个元素是一个链表,链表存储了与该顶点相邻顶点。...E: D, F顶点 F: C, E邻接,每个顶点对应一个链表,链表每个节点表示与该顶点相邻另一个顶点。...邻接优点是可以有效地表示稀疏,节省了存储空间。同时,邻接也可以方便地找到一个顶点所有邻接顶点,因为它们都存储同一个链表

    26321

    数据结构高频面试题-

    对于有向,顶点度分为入度和出度。入度是以该顶点为终点数目,出度是以该顶点为起点数目,该顶点度等于其入度和出度之和。 表示: 邻接矩阵和邻接。...邻接一种链式存储结构:对于 G 每个顶点 Vi,把所有邻接于 Vi 顶点 Vj 链成一个单链表,这个单链表称为顶点 Vi 邻接。...依次从上述邻接点出发,访问他们各个未被访问邻接点。始终保证一点:如果vivk之前被访问,则vi邻接点应在vk邻接点之前被访问。重复上述步骤,直到所有顶点都被访问到。...算法步骤: 所有顶点集合为V;初始令集合u={s},v=V−u; 两个集合u,v能够组成,选择一条代价最小(u0,v0),加入到最小生成树,并把v0并入到集合u; 重复上述步骤,直到最小生成树有...假设:输入总是有效,除法运算不会出现除数为0情况,且不存在任何矛盾结果。 解题思路: 先构造,使用dict实现,其天然hash可以in判断做到O(1)复杂度。

    2.3K20

    重学数据结构(七、

    在线性,数据元素之间仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继;树形结构,数据元素之间有着明显层次关系,并且每一层数据元素可能和下一层多个元素(即其孩子结点)相关,但只能和上一层中一个元素...一、基本概念 计算机科学是由点和构成1:示意图 ?...除了第一个顶点和最后一个顶点之外, 其余顶点不重复出现回路,称为简单回路或简单环。 连通、连通和连通分量:无向 G ,如果从顶点 v 到顶点 v'有路径,则称 v 和 v'是连通。...邻接表表示法只关心存在,将顶点邻接用列表表示。 9:邻接存储示意图 ? 我们来看一下具体实现。 2.1、有向接口定义 这是有向抽象接口定义。...,是一个列表,列表每一项是一条 * * (1)使用集合,避免重复 */ private Set> edgeSet; /**

    73220

    《offer来了》第四章学习笔记

    G 有n个顶点,则邻接矩阵是一个n×n方阵 ? 1. 无向邻接矩阵 无向邻接矩阵,如果 交点为 1,则表示两个顶点连通,为 0 则不连通。...无向邻接矩阵,主对角元素都为 0,也就是说顶点自身没有连通关系 ?...无向邻接结构 顶点是通过一个头节点类型一维数组保存,其中每个头节点第 1 个弧都指向第 1 条依附在该顶点上信息,邻接域表示该另一个顶点在顶点数组下标,下一个弧指向下一条依附在该顶点上信息...带权值连接结构 对于带权值节点定义再增加一个权重值 weight 数据域,存储权值信息即可 ?...深度优先遍历 假设从图中某个顶点 V 出发,访问 V 节点后依次从 V 未被访问邻接点出发以深度优先原则遍历,直到图中所有和 V 节点路径连通顶点都被访问;若此时图中尚有顶点未被访问,则另选一个未曾访问顶点作为起始点重复上述过程

    96740
    领券