Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 26th, 2012  |  syntax: None  |  size: 0.70 KB  |  hits: 19  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. type
  2.   TDoublyLinkedListNode[T] = object
  3.     head, tail: TDoublyLinkedListNode[T]
  4.     value: T
  5.   PDoublyLinkedListNode[T] = ref TDoublyLinkedListNode[T]
  6.  
  7. proc newDoublyLinkedListNode[T](value: T): PDoublyLinkedListNode[T] =
  8.   new(result)
  9.   result.value = value
  10.  
  11. proc fist[T](list: var PDoublyLinkedListNode[T]): PDoublyLinkedListNode[T] =
  12.   var head = list.head
  13.   if head:
  14.     return head.first()
  15.   else:
  16.     list
  17.  
  18. proc addFirst[T](list: var PDoublyLinkedListNode[T], value: T) =
  19.   var first = list.first
  20.   var node = newDoublyLinkedList(value)
  21.   node.tail = first
  22.   first.head = node
  23.  
  24. var list: PDoublyLinkedListNode[string]
  25. newDoublyLinkedListNode("first")
  26. list.addFirst("before")
  27. echo list