关系的数据结构

2023-11-30

我正在将 VB6 转换为 C#,并且希望使保存值和关系的数据结构更加高效。在 VB 中,我有一个值的集合以及这些值之间的关系的另一个集合以及这些关系的优先级。我还有一个算法,当一组值传递给它时,将返回将这些值连接在一起所需的所有关系。例如,假设值集合包含 1-10,关系集合包含

1,2
3,2
5,2
2,8
8,10
9,10

如果输入是 1,9,10,返回的关系将是——

1,2
2,8
8,10
9,10

由于可能有多个路径,因此将返回最少量的关系,但需要注意关系优先级。如果某个关系具有更高的优先级,则将添加该关系,并从那里添加其余的关系。我正在考虑使用不相交集数据结构但我不确定。

有任何想法吗?

更多信息 -

值的数量通常少于 100 个,关系少于 500 个。集合是静态的,并且将一次又一次地使用算法来查找路径。另外,我没有问这个,但算法会不相交集数据结构是最有效率的?


听起来你拥有的是Graph。这是一个具有节点和边的结构。有很多很多图书馆以及处理图表的工具。微软甚至还发表了一篇关于如何处理它们的论文。我认为图表很棒,在很多情况下都非常有用。

图的一大好处是能够为节点之间的边分配优先级。然后当你想找到两个节点之间的路径时,boom,图可以选择具有理想优先级的路径。

在你的情况下,你的价值观是节点,你的关系是边缘。

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

关系的数据结构 的相关文章

  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 按成员序列化

    我已经实现了template
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 无法理解Peterson算法的正确性

    我在这里讨论彼得森算法的一个场景 flag 0 0 flag 1 0 turn P0 flag 0 1 turn 1 while flag 1 1 turn 1 busy wait
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 在php中将数字等字母增加一定的值

    在 php 中如果我写 c A c 它递增到 B 但如果我想将其递增 2 3 或更多 例如 c 2 或 c 3 获取替代字母表 for column B column lt highestColumn column cell workshe
  • 在函数之间传递 MutableLiveData

    我在 ViewModel 中有一个函数 A 它从 firebase 检索数据 并将值分配给MutableLiveData
  • Spring MVC 4 和 Thymeleaf - 防止页面刷新

    我保证 我已经用谷歌搜索过这个了 我有一个 Spring MVC 4 应用程序 它使用 Thymeleaf 收集表单数据并将其放入数据库中 工作得很好 除了我希望我的应用程序在用户点击提交按钮后将用户留在表单页面上 以便他们可以继续编辑 每
  • 单应性到射影变换

    我一直在试图弄清楚如何在两个平面之间获取单应性并将其转换为射影变换 Matlab 自动执行此操作 但我一直在尝试弄清楚 matlab 如何实现转换 你可以在toolbox images images maketform m中查看源代码 至少
  • Javascript/jQuery - 浮点验证?

    我有一个文本字段 人们可以在其中输入价格 XX xx 有没有办法确保他们只输入小数点后不超过 2 位数字 以下是主要的验证类型 document ready function for numeric integer only var num
  • 使用 jQuery 对记录进行分页

    我有一个包含大量记录的 JSON 结果 我想显示第一个 但有一个下一个按钮可以查看第二个 依此类推 我不希望页面刷新 这就是为什么我希望 JavaScript jQuery 甚至第三方 AJAX 库的组合可以提供帮助 有什么建议么 希望这可
  • 非类型模板参数

    我在使用非类型 int 变量 模板参数时遇到问题 为什么我不能将常量 int 变量传递给函数并让函数实例化模板 template
  • R 从带有 csv 文件内容的内联字符串中读取 .csv 数据

    这应该是一件微不足道的事情 但我没有在谷歌上找到任何东西 我的 csv 文件中有以下数据 test csv var1 var2 a 1 b 2 我用它读入 R d lt read csv test csv 我有办法在 R 代码中插入 csv
  • 可以在带引号的 XML 属性值字符串中使用文字尖括号吗?

    例如 这是有效的 XML 吗
  • 生成指数分布的随机数

    include
  • 如何在SQL中获取3天内的记录分组日期?

    每 5 天对记录进行分组和显示变得越来越困难 这是我的数据 FLIGHT DATE LANDINGS PILOTID COPILOTNAME MONT DPT 11 16 2013 1 A B 11 5 5 11 17 2013 1 A B
  • SSRS 2012 和 CSV 导出

    我正在使用 SSRS 2012 尝试执行以下操作 某些列应仅根据用户请求使用组合框可见 列的可见性取决于组合上所选的列 这看起来效果很好 当我以不同于 csv 的任何格式导出输出时 这些列保持不可见 但是 当导出到 csv 时 会显示不可见
  • 如何修改jenkins中可编辑电子邮件插件中的mime消息

    我想修改从詹金斯发送的电子邮件 我该怎么做 我尝试使用 msg 变量并使用 msg setContent 这是我在电子邮件正文中想要的字符串 设置内容 但它失败了 有任何想法吗 我刚刚面临同样的任务 msg setContent Test
  • 如何在应用程序制作工具中创建rest api?

    有没有办法在应用程序制造商的服务器端脚本中创建 REST API 我需要从 iOS 应用程序调用服务器端函数 传递一些参数并获得响应 而无需转到应用程序中的页面 我知道对于常规的谷歌应用程序脚本来说 可以通过执行 API 来实现 但我不知道
  • 是否可以通过管道在 Mongo 中高效地进行排序、分组和限制?

    给定具有年龄索引的用户 name Bob age 21 name Cathy age 21 name Joe age 33 获取输出 id 21 names Bob Cathy id 33 names Joe 是否可以按年龄排序 分组和限制
  • 为什么 AppleScript 总是在按下 Command 的情况下发送击键?

    我看到很多这样的 AppleScript 例子 tell application TextEdit activate tell application System Events keystroke s end tell end tell
  • golang rune() 函数如何工作

    我发现网上发布的一个函数使用了rune golang 中的函数 但我很难查找它是什么 我正在阅读本教程 但对文档缺乏经验 因此很难找到我想要的内容 具体来说 我想看看为什么会失败 fmt Println rune foo 这并不 fmt P
  • 使用 malloc 进行动态内存分配 [重复]

    这个问题在这里已经有答案了 include
  • 如何在打开扬声器的情况下打电话

    这里带来的是从我的活动中拨打电话的代码 public void makeAPhoneCallWithSpeakerOn String uri tel posted by trim Intent intent new Intent Inten
  • 关系的数据结构

    我正在将 VB6 转换为 C 并且希望使保存值和关系的数据结构更加高效 在 VB 中 我有一个值的集合以及这些值之间的关系的另一个集合以及这些关系的优先级 我还有一个算法 当一组值传递给它时 将返回将这些值连接在一起所需的所有关系 例如 假