This should not be merged with linked list as they are not the same thing. Linked list is the general name for a programming practice of creating nodes that are linked together, while dancing links is a method of iterating through the links, or so i can gather. 126.96.36.199 04:29, 24 September 2005
- I agree, this should not be merged with linked list. Dancing links is a way of removing elements from and re-inserting elements into a doubly-linked list, which is used in implementing an algorithm for trial-and-error searches for solutions to a problem. This article is about a different topic, and should be expanded on, but not merged. ralmin 20:37, 16 October 2005 (UTC)
- Don't merge. I understand linked lists and was looking for information of dancing links, so I have no interest in reading through the lengthy article on linked lists to.
- Don't merge. Whilst the Dancing Link exploits a particularly interesting characteristic of a category of linked list (the 4 way double linked list) that is the end of the similarity. This Dancing Link is an algorithm for solving a certain class of problem (exact cover problem) whereas a link list is a data structure. Those who want to learn about this algorithm will not want to trawl though lots of information on Linked Lists -- Andy Hedges
- Don't merge. Linked list is a data structure, whilst dancing links is an algorithm that exploits certain properties of a special type of linked list called doubly linked lists. These two are fundamentally different. Mangoshake 15:21, 11 November 2005 (UTC)
- Don't merge. The above positions say it all. --asmodai 11:16, 12 November 2005 (UTC)
- 1 Dancing links and Algorithm X
- 2 Example needed
- 3 Reorganize Exact cover, Algorithm X and Dancing Links articles?
- 4 Note on the Perl example linked
- 5 Slight adjustment of algorithm description needed
- 6 Reverse arrow?
- 7 Difficult to understand, and suggestions for expansion
- 8 DLX is not synonymous with Dancing Links
- 9 External links modified
I've read Knuth's paper, and in its current state, this article discusses two aspects:
Knuth's Algorithm X (vaguely) Converting a Sudoku board for use by Algorithm X
The only place in this article where Dancing Links are correctly referred to is where it states that Dancing Links is an algorithm using linked lists. Overall this article is grossly misleading. Read Knuth's paper (linked from the article) to see what I'm talking about.
I think I'll rewrite this even though I'm no expert on the subject; it certainly can't turn out worse.
... Done. The new Algorithm X page will show up... when wikipedia updates their database or whatever needs to happen.
Eneg 19:41, 5 January 2006 (UTC)
It seems to me that we're inventing the term "Algorithm X" for this page; is that true? That might not be the best idea (not doing original research, etc). Glasser 04:35, 8 January 2006 (UTC)
Glasser, please read the original article before making assertions like this. Eneg 19:32, 8 January 2006 (UTC)
You're right, it had been a while since I read the article and only remembered DLX. Sorry. Glasser 21:54, 12 January 2006 (UTC)
I've implemented this algorithm in ML (using only wiki and it didn't take very long...!) but it seems that the sentence "Finally, remove each column (...) in which the selected row has a 1" should also advise writers to remove rows in which the removed columns have a 1 as these rows cannot be in the solution 188.8.131.52 00:06, 19 January 2006 (UTC)
Would it be possible to get an example of how a Sudoku puzzle is represented by a matrix? I suppose I could try to figure it out and post it and see if it lasts.
- I think this is a good idea. But I think it makes the most sense to include this as part of a Sudoku example in the exact cover article. See my question/suggestion below about reorganizing related articles. --Rob Zako 17:37, 27 June 2006 (UTC)
- I have done this programmatically, and I should warn you that these matrices are kind of, erm, large. Ish. Shinobu 11:57, 22 November 2006 (UTC)
- Yes, the matrix is large. See the exact cover article for an abbreviated version of this matrix. --Rob Zako 07:31, 3 December 2006 (UTC)
Reorganize Exact cover, Algorithm X and Dancing Links articles?
The exact cover, Algorithm X and Dancing Links articles all discuss similar ideas. The exact cover problem is an NP-complete problem; Algorithm X is a brute-force algorithm that finds all solutions to the exact cover problem; and Dancing Links is a computer implementation of Algorithm X. These related topics have received a lot of interest recently because Dancing Links is the preferred technique for solving Sudoku puzzles quickly by computer. I suggest that all three topics be reoganized so that most of the information about concepts and examples is in the exact cover articles, with the other two articles focusing just on the particulars of the algorithm or the computer implementation. --Rob Zako 16:56, 27 June 2006 (UTC)
While I'm flattered (the "Perl example" slide presentation linked was mine), that presentation has nothing at all to do with DLX/Algorithm-X. It was a much more general talk about solving Sudoku in Perl. However, I actually did write an article about using Algorithm-X to solve and generate Sudoku using exact cover in an issue of The Perl Review, a print magazine. I think that I replace the link to the slides with a reference to that print publication. Note, however that it only relates to the exact cover Sudoku solver component of Knuth's paper, and does not employ DLX in any way. 184.108.40.206 14:06, 9 January 2007 (UTC) (fishbot)
Slight adjustment of algorithm description needed
As the poster at IP 220.127.116.11 observed, it is necessary to finally remove every row containing a 1 in **any** of the columns that the chosen row contains a 1, to avoid conflict (i.e., multiple 1s in a column). Could someone change the text please? (Otherwise I will have a go myself in a few days...) —The preceding unsigned comment was added by 18.104.22.168 (talk) 07:29, 7 April 2007 (UTC).
What does the reverse arrow (←) mean? —CobraA1 01:58, 17 June 2008 (UTC)
- It appears to mean that the variable on the left hand side is being assigned the value on the right. Most modern programming languages use an equal sign for this, but it's rather different from mathematical equality so some writers prefer other notations such as this one. —David Eppstein (talk) 04:43, 17 June 2008 (UTC)
Difficult to understand, and suggestions for expansion
For some reason, I find that this article (combined with the Algorithm X article) difficult to understand, and does not give me quite sufficient details to implement DLX in my own codes. On the other hand, Knuth's paper is to the point, contains sufficient examples, making it easily understandable for me to implement DLX. My suggestion is to merge the two pages, and to reproduce the pseudocode from Knuth's paper on this page.
Further, the following two links could contain additional information that allows this article to be expanded:
- How to find a random solution using DLX in the context of generating full Sudoku grids.
- Algorithm Y by David Eppstein, which improves Algorithm X if the aim is to find a single solution. (I haven't properly digested this though.)
DLX is not synonymous with Dancing Links
If you read the Knuth paper, you'll see that "Dancing Links" is the technique for quickly undeleting an element from a doubly linked list. He claims it to be extremely useful in general and then shows an example by applying it to Algorithm X. He say, "When algorithm X is implemented in terms of dancing links, let’s call it algorithm DLX." Ben (talk) 10:02, 27 March 2015 (UTC)
Hello fellow Wikipedians,
I have just modified one external link on Dancing Links. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
- Added archive https://web.archive.org/web/20101206221635/http://hadoop.apache.org/common/docs/r0.20.2/api/org/apache/hadoop/examples/dancing/package-summary.html to http://hadoop.apache.org/common/docs/r0.20.2/api/org/apache/hadoop/examples/dancing/package-summary.html
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
You may set the
|checked=, on this template, to true or failed to let other editors know you reviewed the change. If you find any errors, please use the tools below to fix them or call an editor by setting
|needhelp= to your help request.
- If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
- If you found an error with any archives or the URLs themselves, you can fix them with this tool.
If you are unable to use these tools, you may set
|needhelp=<your help request> on this template to request help from an experienced user. Please include details about your problem, to help other editors.