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;
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;