【发布时间】:2014-07-29 03:15:28
【问题描述】:
我有一个三维结构......实际上是一个具有六个节点的双向链表,即左、右、上、下、内、外。如果一个节点位于另一个节点的右侧,则该节点将挑衅地位于第一个节点的左侧。喜欢
实际上这是一个 3D 结构,但为了便于理解,我给出了一个 2D 示例。 现在我必须将其转换为 JSON 格式,以通过 WCF 将此数据发送到客户端,但由于它包含循环,因此无法转换为 JSON。我有这些问题
- 这种类型的双向链表可以转成JSON吗?
- 还有其他方法吗?
- 还有其他推荐的数据结构吗?如果这不可能使用双向链表。
我正在使用Json.Net 来处理 JSON。
我的课是
public class Node
{
public Document document = null;
public Node left = null;
public Node right = null;
public Node up = null;
public Node down = null;
public Node inside = null;
public Node outside = null;
}
【问题讨论】:
-
您可以给每个节点一个 ID 并使用它来序列化/反序列化节点:
[{Id=0, Right=1}, {Id=1, Left=0}]。一个类似的选项是拥有一组节点和一组顶点(如果连接是无向的,这可能会更好)。 -
你的意思是我应该选择图形数据结构?
-
您已经拥有有限的图形数据结构(
Node是您的术语)。这取决于您如何表示它 - 数据是相同的数据。 (例如,您也可以使用 3D 数组并且完全没有边) -
没错,兄弟,你是对的,它是一个有 6 条无向边的图...... 3D 数组是我的首选,但问题是我必须从中间开始填充数据并远离角落。
标签: c# json data-structures json.net doubly-linked-list