5

如果我的问题听起来很愚蠢,我很抱歉,因为我对数据结构的理解不是很好。

我一直在阅读Knuth 的 Dancing Links算法,并且非常了解它的基本工作原理。提到dancing link的数据结构可视化看起来像一个有列有行的表格,每个单元格都连接到它们的上、下、左、右单元格。我还读过这个算法中使用了循环双链表。

我想知道的是如何将双链表精确地制成具有列和行的表?

据我所知,大多数双链表只有 2 个指针(上和下),这是否意味着我必须制作自己的自定义链表,它有 4 个指针(上、下、左和右)?还是有其他方法?

提前致谢。

4

1 回答 1

4

该算法对每一行和每一列都使用一个双向链表,而不仅仅是一个列表。

这篇关于使用跳舞链接解决数独的文章有一个很好的画面。

至少在本文的代码中,行确实表示为左右指针,列表示同一节点中的上下指针,或多或少如您描述的那样,因此列表是相互连接的。

于 2012-07-28T10:30:42.457 回答