;*****************************************************************
;* simple test & demo program for the linked list class
;*
;* written by D. Frieauff on 28. August 1997
;*****************************************************************

pro llist
  ;create linked list object with name 'my llist for test' and id 1
  t = obj_new('llist', 'my llist for test', 1)  
  t->print

  ;append first node
  p_first = ptr_new('first one')
  t->append, p_first
  t->print

  ;append second node
  p_sec = ptr_new('second one')
  t->append, p_sec
  t->print

  ;insert third node on top
  t->insert_top, ptr_new('on_top')
  t->print

  ;insert 4th node behind first node
  p_ins = ptr_new('inserted behind')
  t->insert_behind, p_first, p_ins
  t->print

  ;delete first node
  t->delete_top, /destroy
  t->print

  ;delete inserted node
  t->delete, p_ins, /destroy
  t->print

  ;get number of nodes
  print, 'Number of nodes: ', strtrim(t->size(), 2)

  ;get pointers
  c_elements = t->get_pointers(p_elements)
  for i=0, c_elements-1 do $
      print, 'node ' + strtrim(i,2) + ': ' + *p_elements(i)

  obj_destroy, t, /destroy
  help, /heap	;nothing should remain

  end


