All pastes #753997 Raw Edit

Unnamed

public text v1 · immutable
#753997 ·published 2007-10-29 18:27 UTC
rendered paste body
include "std.led";
include "olist.led";
include "tree.led";
include "dictionary.led";

function treeSort [X : ordered] (aList : List[X])->List[X];
var
	aTree : Tree[X];
	newList : List[X];
	element : X;
begin
		{ first copy values into the tree }
	aTree := Tree[X]();
	for aList.items(element) do
		aTree.add(element);

		{ then copy them back into a list }
	newList := List[X]();
	element := NIL;
	for aTree.items(element) do
		newList.addToEnd(element);

		{ return the new list of values }
	return newList;
end;

var
	aTree : Tree[integer];
	v : integer;
	aList : List[integer];
begin
	aTree := Tree[integer]();

	aTree.add(2);
	aTree.add(4);
	aTree.add(2);
	aTree.add(3);

	for aTree.items(v) do
		begin
			print(v);
			print(" ");
		end;
	print("\n");

	aTree.remove(2);

	for aTree.items(v) do
		begin
			print(v);
			print(" ");
		end;
	print("\n");

	print("unsorted list");
	aList := List[integer]() + 4 + 2 + 3 + 7 + 4;
	for aList.items(v) do begin
		print(v);
		print(" ");
		end;
	print("\n");
	aList := treeSort[integer](aList);
	print("sorted list");
	for aList.items(v) do begin
		print(v);
		print(" ");
		end;
	print("\n");

end;