Graph 如何序列化图形?
这是一个问题:如何序列化图形?我看到了,但我不确定这是否足够 这看起来像是一个非常令人困惑的“开放性问题”,候选人可能会问更多关于需求的问题:节点和边是什么,它们自己是如何序列化的,这个图是加权的、定向的,等等,图中有多少节点/边。基础设施呢?它是普通文件系统还是我们应该/可以使用数据库Graph 如何序列化图形?,graph,Graph,这是一个问题:如何序列化图形?我看到了,但我不确定这是否足够 这看起来像是一个非常令人困惑的“开放性问题”,候选人可能会问更多关于需求的问题:节点和边是什么,它们自己是如何序列化的,这个图是加权的、定向的,等等,图中有多少节点/边。基础设施呢?它是普通文件系统还是我们应该/可以使用数据库 那么,你将如何回答这个问题 Meh。不管你把它储存在什么地方,它基本上是: 输出图形中的每个顶点。如果您没有首先获得所有顶点,那么当您读回图形时,重建图形是一个PITA 现在可以在顶点之间存储边。希望您的顶点具
那么,你将如何回答这个问题 Meh。不管你把它储存在什么地方,它基本上是: 输出图形中的每个顶点。如果您没有首先获得所有顶点,那么当您读回图形时,重建图形是一个PITA 现在可以在顶点之间存储边。希望您的顶点具有某种形式的ID,以唯一地标识它们。我看到的版本是“在数据库中存储(图|树)”。因此,读入节点,存储在哈希表或类似的表中,进行O(1)分期查找。然后,查找每个边、查找ID源和ID目标以及链接
瞧,你已经反序列化了。如果它不是一个DB,通常也有同样的想法——先序列化节点,然后序列化边 Meh。不管你把它储存在什么地方,它基本上是: 输出图形中的每个顶点。如果您没有首先获得所有顶点,那么当您读回图形时,重建图形是一个PITA 现在可以在顶点之间存储边。希望您的顶点具有某种形式的ID,以唯一地标识它们。我看到的版本是“在数据库中存储(图|树)”。因此,读入节点,存储在哈希表或类似的表中,进行O(1)分期查找。然后,查找每个边、查找ID源和ID目标以及链接 瞧,你已经反序列化了。如果它不是一个DB,通常也有同样的想法——先序列化节点,然后序列化边 我认为你的回答很合理。IMO,基本上你需要了解应用背景,我至少会问:
- 是不是导演的
- 与顶点、边和图形本身相关联的属性是什么
- 图是稀疏的吗(如果是这样,我们最好不要使用邻接矩阵)
- 是不是导演的
- 与顶点、边和图形本身相关联的属性是什么
- 图是稀疏的吗(如果是这样,我们最好不要使用邻接矩阵)
生成的图形/矩阵可以存储为列压缩形式。如果您正在解决(最小成本)最大流问题,那么已经有了一种格式,这样公共解算器就可以读写它。如果您想让人可读,结构化方式也是一个不错的选择,XML可以提供自我验证(已经有一个标准)。顺便说一句,格式非常完备。哪种语言?在C#中,足以将您的类标记为Serializable。我认为您提到的答案完全令人满意。列表和矩阵都可以进行调整,以容纳变量和权重。哪种语言?在C#中,足以将您的类标记为Serializable。我认为您提到的答案完全令人满意。列表和矩阵都可以进行调整,以容纳变量和权重。