	procedure rrot( var t : tree );
	var	temp : tree;
		b : integer;
	begin
		temp := t;
		t := t^.left;
		temp^.left := t^.right;
		t^.right := temp;
		{*** adjust balance ***}
		b := temp^.bal;
		temp^.bal := b + 1 + max( -t^.bal, 0 );
		t^.bal := -min( -b-2, -b-t^.bal-2, -t^.bal-1);
	end;
