Previous topic | Ada Home Page | Index

Linked list ADT

Package specification


package list is

  type node;
  type link is access node;

  type node is record
       data : integer;
       next : link;
  end record;

  procedure initialise (head : out link);

  -- add a node at the start of the list
  procedure prepend (data : in integer; head : in out link);

  -- add a node at the end of the list
  procedure append  (data : in integer; head : in out link);

  -- print the contents of the list
  procedure print_list (head : in link);

  -- insert a node in (ascending) sorted order
  procedure insert (data : in integer; head : in out link);

  -- etc ...

end list;

Example program

read, store, sort, display any number of items


with list;
with text_io;
program listdemo is

    package int_io is new text_io.integer_io(integer);
    use int_io, text_io, list;

    head : link;                   -- head of a linked list
    num  : integer;                -- a single data item

begin
    list.initialise (head);        -- create an empty list

    while not end_of_file loop
        get (num);                 -- read next data item
        skip_line;
        list.insert (head, num);   -- insert in sorted order
    end loop;

    list_print_list (head);        -- print in sorted order
end;


Previous topic | Ada Home Page | Index
c-lokan@adfa.oz.au / 27 Feb 96