	i := 1;
	while root <> 0 do begin
		tempr := r[root];
		r[root] := r[i];
		r[i] := tempr;
		r[i].next := root;
		root := tempr.next;
		i := i+1;
		while (root<i) and (root>0) do	root := r[root].next;
		end;
	end;
