图发生率列表实现

2023-12-19

我正在考虑图形数据结构实现,并正在查看“发生率列表”表示。这里有一个简单的描述:

发生率列表 http://en.wikipedia.org/wiki/Incidence_list

因此图中的每个顶点都存储它所关联的边的列表。

鉴于我的图是有向图,从这个描述中我不太清楚以下几点:

  1. 图本身是否也存储所有边的列表?
  2. 顶点只存储出边,还是入出边?
  3. 如果两者都有,它们是否在单独的列表中?

我非常熟悉其他图表示形式(邻接列表、邻接矩阵、边列表、关联矩阵),所以这不是一个关于一般图实现的问题,只是这个特定的问题。

任何指示将不胜感激。


我知道我可能提出了一个死人的老问题,但我觉得发表评论是合适的。

您可以创建关联列表图结构,也可以将其调整为有向图。

考虑一个LinkedList<Vertex>对象和一个LinkedList<Edge>目的。这将允许您迭代所有边和所有顶点,但不包含有关所有内容如何连接的信息。

假设我们添加几个LinkedList<Connection>对象。事实上,每人一份Vertex. A Connection就是一个Edge and a Vertex见面。因此Edge将有两个Connection对象(对于无向图),以及Vertex会有一个LinkedList<Connection>对象,代表与每个的连接Edge与它相连的。这本质上是一个事件列表。

如果删除其中一些,您可以修改它以表示有向图Connection对象。更具体地说,您必须选择在哪里不包含这些参考文献。您可以选择删除Connection从相关的LinkedList<Connection>如果您不想看到Edge from a Vertex(对于上面的示例,N2 将有一个空LinkedList<Connection>)。您可以选择将参考文献设为可选Edge(对于上面的示例,E1 将有一个Connection指向 N2 和 1Connectionnull,允许从 E1 遍历到 N2,但不允许返回到 N1。您选择如何实现这一点完全取决于您。一种更直观 - 边是有方向的,因此删除边上的连接来决定它们的走向似乎是合乎逻辑的。另一个乍一看可能有点复杂,但会阻止您在进行广度优先和深度优先搜索时不必要地跳到无处可去的边缘。

以点形式表示:

  1. 在我实施的事件列表中,我有。您的实施需要这样做吗?

  2. 严格来说,您可以通过仅存储传出边缘来获得。然而,回溯算法可能会受益于能够沿着它们所经过的引用进行回溯。当然,您可以通过某种历史记录来实现这一点,因此可能不需要太多考虑。

  3. 如果您两者都做,您可能需要某种方法来区分它是传入还是传出。无论是拥有两个LinkedList<Connection>顶点上的对象,或者通过具有boolean pointingToVertex原始的Connection, 管他呢。也许你的Edge将是有向的,无向的边将由two边缘指向相反的方向。根据您的结构的需要进行考虑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图发生率列表实现 的相关文章

  • SWIG 类型映射 uint8_t* 从 C/C++ 到 java.nio.ByteBuffer

    我正在尝试将输入和输出缓冲区从 C 传递给 java 类 出于效率原因 我需要使用 ByteBuffer 这两个缓冲区都是在 C 部分中分配的 我需要将它们传递给一个 java 函数 该函数将使用输入缓冲区进行一些计算并将结果写入输出缓冲区
  • 如何更改 JComboBox 下拉列表的宽度?

    我有一个可编辑的JComboBox其中包含单个字母值的列表 因此 组合框非常小 每个字母都有特殊的含义 对于很少使用的字母 有时用户并不清楚 因此我创建了一个自定义ListCellRenderer显示下拉列表中每个字母的含义 不幸的是 这个
  • 如何根据 JComboBox 选择动态地将控件添加到表单?

    我正在尝试使用 Swing 创建一个简单的 java 表单 这个想法的基本思想是用户将在 JComboBox 中选择 0 到 5 然后 通过 ItemStateChanged 侦听器 将动态添加几个面板 每个面板包含 4 个控件 因此 如果
  • SimpleDateFormat 无法正确处理 DD

    我正在尝试获得这样的格式 2013 06 15 17 45 我在代码中执行以下操作 Date d new Date SimpleDateFormat ft new SimpleDateFormat YYYY MM DD HH mm Stri
  • 从 Java 启动外部进程:stdout 和 stderr

    我正在使用标准从 java 启动一个外部进程java lang Process 我试图弄清楚该过程的输出是什么 但是采用结合了两者的格式stdout and stderr 目前 我有Process getInputStream它提供了访问s
  • ORMLite - join where 子句中的括号

    我想使用连接三个表QueryBuilder join and QueryBuilder joinor但我想在 where 子句中添加括号 如下所示 WHERE first table where AND second table where
  • java模拟自定义对象

    public class MainClass public void makeCall CustomObject obj new CustomObject obj testMethod 我想进行单元测试makeCall 所以我必须嘲笑Cus
  • IntelliJ Idea,如何从控制台删除java文件目录?

    当您运行文件时 它会打开控制台窗口 并且一直在顶部显示该文件所在的目录 这非常令人恼火 因为现在 为了将其他行与目录混合分开 我必须在启动任何 System out println 命令之前使用 n C Program FILEs 我想摆脱
  • 带有 @Scheduled Spring 注释的方法的切入点

    我想要一个带有注释的方法的 AspectJ 切入点 Scheduled 尝试了不同的方法但没有任何效果 1 Pointcut execution org springframework scheduling annotation Sched
  • 在Tomcat中设置环境变量TESSDATA_PREFIX

    我们正在使用名为 Tess4J 的 Tesseract OCR Java 库 如果作为独立应用程序运行 它可以正常工作 它需要一个名为 TESSDATA PREFIX 的变量 其中包含 tessdata 配置和其他字符集相关文件 它也可以与
  • 读取 Nashorn JO4 和 NativeArray

    Java调用代码 import jdk nashorn api scripting myCustomHashMap dataStore new myCustomHashMap ScriptEngineManager sem new Scri
  • JavaFX 动画使用循环?

    我正在尝试制作一款类似太空侵略者的游戏 我画了一个正方形 我想通过使用循环逐步向下移动它thread sleep 然而 正方形立即被绘制出来 我知道有可以使用的动画路径 但我想保持低水平并仅使用坐标系 有没有办法使用这样的循环来制作时间轴动
  • Java中的运算符重载和覆盖

    运算符重载和运算符重写有什么区别 它们在继承和控制台程序中是否相同 Java 不支持运算符重载和重写 检查以下引用自的描述 http java sun com docs white langenv Simple doc2 html http
  • Java Timer 类:如果其中一个任务抛出异常,则计时器任务停止执行

    new Timer scheduleAtFixedRate new TimerTask Override public void run System out println run throw new SomeRandomExceptio
  • 为什么 Casbah / Java MongoDB 驱动程序最终会出现 java.lang.IllegalArgumentException?

    我使用时看到一个奇怪的问题casbah java driver 当驱动程序尝试从 mongo 创建响应时 我不断遇到以下异常 Oct 16 2012 10 45 07 AM com mongodb DBTCPConnector MyPort
  • 在 Java/GWT 中解析用户时间输入

    解析用户在 GWT 中的文本字段中键入的时间的最佳方法是什么 默认时间格式要求用户完全按照区域设置指定的时间格式输入时间 我想要更加灵活 因为用户可以通过多种不同的方式输入时间 例如 8 8p 8pm 8 15pm 13 15 1315 1
  • Android 以编程方式停止 toast 通知?

    有没有办法以编程方式停止 Toast 消息 假设我有一个按钮 单击它可以滚动 toast 消息 并且在 onclick 事件中我想停止队列中的所有消息并只显示新消息 我该怎么做 我的代码的简化版本如下 代码 public class Hel
  • org.apache.catalina.core.JreMemoryLeakPreventionListener 中急切调用 URLConnection 的 setDefaultUseCaches(false) 是什么原因

    这个问题可能有点难以找到答案 这是一个系列中的问题考虑使用 Policy getPolicy 的原因是什么 因为它将保留对上下文的静态引用并可能导致内存泄漏 https stackoverflow com questions 7057421
  • JSF - 实施受限页面过滤器

    我正在关注 BalusC 的回答JSF 2 0 如何获取在浏览器地址栏中输入的 URL https stackoverflow com questions 4105263 jsf 2 0 how to get the url that is
  • JavaFX 中的 MVC 模式与场景生成器

    我是 JavaFX 新手 根据我当前的设置 正在努力创建合适的 MVC 架构 我使用 Scene Builder 单击了一个 UI 并指定了一个 Controller 类 Startup public class Portal extend

随机推荐

  • 如何为 VSTS 添加 GIT 子模块以与 Visual Studio 2017 一起使用

    如何在 Azure GIT 中创建子模块存储库和我的另一个项目 C MVC 并在 Azure GIT 中使用它或在 Visual Studio 2017 IDE 中引用它 是否有任何视频显示此内容或解释此内容的文档 我没有看到任何东西 尤其
  • 使用factomineR 进行因子分析

    当我在 R 中使用函数 CA 时遇到问题 我的数据是 data row names Conscient NonConscient MoinsSouvent 185 213 PlusieursfMois 98 56 PlusieursfSem
  • “此 HTML5 文档检查接口已弃用”

    在做一个项目时 我正在检查它是否有 W3C 错误 使用HTML 验证器 https addons mozilla org en us firefox addon html validator Firefox 的插件 在此过程中我发现了一个以
  • Java-多边形和线的交点

    有没有什么函数可以给我一个交点Polygon and Line2D 我有一个多边形和一个我知道相交的线段 我想要交点的实际值而不是布尔答案 给你 有趣的方法是 getIntersections 和 getIntersection 前者解析所
  • EF core 5 多对多过滤器

    这是我的查询 public async Task
  • 量角器无法单击 元素内嵌入的

    我有两个嵌入式 span 里面的元素 a 元素 我需要在第二个触发点击事件 span The by id方法上的id我创建的类没有触发点击 我也尝试过by binding但这不起作用 请帮助 代码 div class add player
  • 使用 JavaScript 添加微数据

    我有一个基于 Javascript 和 php 的评级系统 每个页面上都会显示结果 X 票 moyenne X X 是数字 moyenne 表示 平均符号 我想要 javascript 添加微数据信息 源代码应该显示如下内容 span X
  • python 仅使用 urllib2 获取标头

    我必须使用 urllib2 实现一个仅获取标头的函数 不执行 GET 或 POST 这是我的功能 def getheadersonly url redirections True if not redirections class MyHT
  • Windows 10 下多核处理器上的 QueryPerformanceCounter 行为不稳定

    在 Windows 下 我的应用程序使用QueryPerformanceCounter and QueryPerformanceFrequency 来执行 高分辨率 时间戳 自 Windows 10 以来 到目前为止仅在 Intel i7
  • 如何在 Julia/JuMP 中以总和表示法“for all”

    我正在尝试使用 JuMP 对 Julia 中的线性优化问题添加约束 我正在使用sum 但是 我在某些限制方面遇到了麻烦 有谁知道JuMP中的 for all 倒过来的A 怎么写 这是我到目前为止的代码 using JuMP m Model
  • 如何将 EditText 和 Button 放在一起?

    我想尝试让 EditText 和 Button 彼此相邻 我目前的位置是按钮位于右侧 编辑文本左对齐 但按钮显示它位于 EditText 的顶部 我希望按钮从 EditText 结束的地方开始 这就是我现在所拥有的
  • 根据上游任务的输出在气流中生成动态任务

    如何根据上游任务返回的列表动态生成任务 我已经尝试过以下方法 使用外部文件从列表中写入和读取 此选项有效 但我正在寻找更优雅的解决方案 Xcom 拉进了一家 subdag 工厂 这是行不通的 我能够将列表从上游任务传递到子dag 但 xco
  • 使用dompdf访问远程图像的安全问题

    我正在使用 dompdf 生成 PDF 文件 该文件从 highcharts js 导出库获取一些图像 动态图表 现在我必须将 DOMPDF ENABLE REMOTE 的默认设置从 false 更改为 true 以使 dompdf 能够包
  • 多个方法参数上的 @Cacheable 键

    来自弹簧文档 http static springsource org spring docs 3 1 0 M1 spring framework reference html cache html Cacheable value book
  • 如何在没有响应标头的情况下显式终止来自服务器的 http 连接

    我正在为我的一个客户端应用程序开发一个服务器模拟器 我正在使用 GlassFish 服务器 我必须在我的服务器应用程序中模拟 http 连接终止条件 有没有一种方法可以显式终止来自服务器端的连接 以便客户端不会收到任何响应标头 目前我已经尝
  • sudo pip 安装 django

    这是我第一次尝试安装 Django 当我运行它时 它成功安装了 Django 1 7 3 但我收到了下面的这些警告 我无法在网上找到任何有关它的信息 所以我希望有人能够澄清它们的含义 如果我需要修复它们 以及我该如何去做 谢谢 下面是我的终
  • 如何在 SwiftUI 中添加键盘工具栏,即使键盘不可见,该工具栏仍然保留

    我有一个聊天应用程序 想要在键盘上添加一个工具栏 类似于 SwiftUI 之前的 inputAccessoryView 我知道 iOS15 现在可以选择使用以下内容添加工具栏 来自 hackingwithswift toolbar Tool
  • bash:截断文件名,保持它们唯一

    我使用类似于此的 for 循环将文件夹中的所有文件名截断为 16 个字符 for i in do Shortname i 0 16 Let s assume I don t need the extension mv i Shortname
  • Playwright C# - 处理 Toast 消息

    我试图使用剧作家检查祝酒消息的内容 但找不到合适的方法来实现这一目标 剧作家文档列出了一种处理警报消息的合适方法 我可以使用该方法在解除警报之前检索警报中的文本内容 例如 Page Dialog dialog gt alertMessage
  • 图发生率列表实现

    我正在考虑图形数据结构实现 并正在查看 发生率列表 表示 这里有一个简单的描述 发生率列表 http en wikipedia org wiki Incidence list 因此图中的每个顶点都存储它所关联的边的列表 鉴于我的图是有向图