
Untitled
By: a guest on
Jun 26th, 2012 | syntax:
None | size: 0.70 KB | hits: 19 | expires: Never
type
TDoublyLinkedListNode[T] = object
head, tail: TDoublyLinkedListNode[T]
value: T
PDoublyLinkedListNode[T] = ref TDoublyLinkedListNode[T]
proc newDoublyLinkedListNode[T](value: T): PDoublyLinkedListNode[T] =
new(result)
result.value = value
proc fist[T](list: var PDoublyLinkedListNode[T]): PDoublyLinkedListNode[T] =
var head = list.head
if head:
return head.first()
else:
list
proc addFirst[T](list: var PDoublyLinkedListNode[T], value: T) =
var first = list.first
var node = newDoublyLinkedList(value)
node.tail = first
first.head = node
var list: PDoublyLinkedListNode[string]
newDoublyLinkedListNode("first")
list.addFirst("before")
echo list