Anonymous user
Doubly-linked list/Definition: Difference between revisions
m
Changed htabs to 8 spaces, indentation was screwed up.
(Previous implementation was O(n) in time for tail insertion.) |
m (Changed htabs to 8 spaces, indentation was screwed up.) |
||
Line 407:
(let ((new-link (make-dlink :content data :prev before :next after)))
(if (null before)
(if (null after)
new-link))
Line 433:
"Remove link DLINK from DLIST and return its content"
(let ((before (dlink-prev dlink))
(if (null before)
(if (null after)
(defun dlist-elements (dlist)
"Returns the elements of DLIST as a list"
(labels ((extract-values (dlink acc)
acc
(reverse (extract-values (dlist-head dlist) nil))))</lang>
Line 456:
(insert-after dlist (dlist-head dlist) 2)
(let* ((next-to-last (insert-before dlist (dlist-tail dlist) 3))
(remove-link dlist bad-link))
(print (dlist-elements dlist)))</lang>
|