5

私のデータ構造の理解があまり良くないので、私の質問がばかげているように聞こえたら申し訳ありません。

私はクヌースのダンシングリンクアルゴリズムについて読んでいて、それが基本的にどのように機能するかをほぼ理解しています。ダンスリンクのデータ構造の視覚化は、列と行があり、各セルが上、下、左、右のセルに接続されたテーブルのように見えると言われています。また、このアルゴリズムでは循環二重リンクリストが使用されていることも読みました。

私が知りたいのは、二重リンクリストを列と行を含むそのようなテーブルにどのように正確に作成できるかということです。

私が知っているように、ほとんどの二重リンクリストには2つのポインター(上と下)しかありませんが、4つのポインター(上、下、左、右)を持つ独自のカスタムリンクリストを作成する必要があるということですか?または他の方法がありますか?

前もって感謝します。

4

1 に答える 1

4

The algorithm uses a doubly-linked list for each row and column, not just one list.

This article on using dancing links to solve sudoku has a nice picture.

At least in the code of this article, the rows are indeed represented as left and right pointers and the columns as up and down pointers in the same nodes, more or less as you describe, so the lists are interconnected.

于 2012-07-28T10:30:42.457 に答える