(* kaanna_lista.p *)

program kaannalista;

import TRA;

procedure kaanna_lista(L : LIST);
	var p, q : LIST_POSITION;
		x : ELEMENT;
begin
	p := LIST_EOL(L);
	q := LIST_PREVIOUS(L, p);
	repeat
		p := q;
		if (p <> LIST_FIRST(L)) then
			q := LIST_PREVIOUS(L, p)
		else
			q := LIST_EOL(L);
		x := LIST_RETRIEVE(L, p);
		LIST_DELETE(L, p);
		LIST_INSERT(L, LIST_EOL(L), x);
	until (q = LIST_EOL(L));
		
end;

(* kokeiluosio *)

var oma : LIST;

begin

  INT_LIST_CREATE(oma);

  LIST_CONSTRUCT_RANDOM(oma, 10, 1, 5);

  LIST_PRINT(oma); writeln;

  kaanna_lista(oma);

  LIST_PRINT(oma); writeln;

end.

