Doubly-linked list/Traversal: Difference between revisions
Content added Content deleted
(add JavaScript) |
m (→{{header|JavaScript}}: xref corrections) |
||
Line 3: | Line 3: | ||
=={{header|JavaScript}}== |
=={{header|JavaScript}}== |
||
See [[Doubly- |
See [[Doubly-Linked List (element)#JavaScript]]. The <code>traverse()</code> and <code>print()</code> functions have been inherited from [[Singly-Linked List (traversal)#JavaScript]]. |
||
<lang javascript>DoublyLinkedList.prototype.getTail = function() { |
<lang javascript>DoublyLinkedList.prototype.getTail = function() { |
||
var tail; |
var tail; |
Revision as of 15:38, 9 October 2009
Doubly-linked list/Traversal
You are encouraged to solve this task according to the task description, using any language you may know.
You are encouraged to solve this task according to the task description, using any language you may know.
Traverse from the beginning of a doubly-linked list to the end, and from the end to the beginning.
JavaScript
See Doubly-Linked List (element)#JavaScript. The traverse()
and print()
functions have been inherited from Singly-Linked List (traversal)#JavaScript.
<lang javascript>DoublyLinkedList.prototype.getTail = function() {
var tail; this.traverse(function(node){tail = node;}); return tail;
} DoublyLinkedList.prototype.traverseBackward = function(func) {
func(this); if (this.prev() != null) this.prev().traverseBackward(func);
} DoublyLinkedList.prototype.printBackward = function() {
this.traverseBackward( function(node) {print(node.value())} );
}
var head = createDoublyLinkedListFromArray([10,20,30,40]); head.print(); head.getTail().printBackward();</lang>
outputs:
10 20 30 40 40 30 20 10
Uses the print()
function from Rhino or SpiderMonkey.