Generic package: Ada.Containers.Red_Black_Trees.Generic_Operations

Description

AI-302 Reference Implementation

Copyright (C) 2003-2004 Matthew J Heaney

The AI-302 Reference Implementation is free software; you can redistribute it and/or modify it under terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. Charles is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License distributed with Charles; see file COPYING.TXT. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

As a special exception, if other files instantiate generics from this unit, or you link this unit with other files to produce an executable, this unit does not by itself cause the resulting executable to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU Public License.

The AI-302 Reference Implementation is maintained by Matthew J Heaney.

mailto:matthewjheaney@earthlink.net http://home.earthlink.net/~matthewjheaney/index.html


Header

generic

   with package Tree_Types is
     new Generic_Tree_Types (<>);

   use Tree_Types;

   Null_Node : in Node_Access;

   with function Parent (Node : Node_Access)
      return Node_Access is <>;

   with procedure Set_Parent
     (Node   : Node_Access;
      Parent : Node_Access) is <>;

   with function Left (Node : Node_Access)
      return Node_Access is <>;

   with procedure Set_Left
     (Node : Node_Access;
      Left : Node_Access) is <>;

   with function Right (Node : Node_Access)
      return Node_Access is <>;

   with procedure Set_Right
     (Node  : Node_Access;
      Right : Node_Access) is <>;

   with function Color (Node : Node_Access)
      return Color_Type is <>;

   with procedure Set_Color
     (Node  : Node_Access;
      Color : Color_Type) is <>;

package Ada.Containers.Red_Black_Trees.Generic_Operations is
 
pragma Pure;

Other Items:

function Min (Node : Node_Access) return Node_Access;

function Max (Node : Node_Access) return Node_Access;

procedure Check_Invariant (Tree : Tree_Type);

function Next (Node : Node_Access) return Node_Access;

function Previous (Node : Node_Access) return Node_Access;

procedure Move (Target, Source : in out Tree_Type);

generic
   with function Is_Equal (L, R : Node_Access) return Boolean;
function Generic_Equal (Left, Right : Tree_Type) return Boolean;

procedure Delete
  (Tree : in out Tree_Type;
   Node : in     Node_Access);

generic
   with procedure Process (Node : Node_Access) is <>;
procedure Generic_Iteration (Tree : in Tree_Type);

generic
   with procedure Process (Node : Node_Access) is <>;
procedure Generic_Reverse_Iteration (Tree : in Tree_Type);

generic

   with function New_Node return Node_Access is <>;

procedure Generic_Read
  (Tree : in out Tree_Type;
   N    : in     Count_Type);

procedure Rebalance_For_Insert
  (Tree : in out Tree_Type;
   Node : in     Node_Access);
end Ada.Containers.Red_Black_Trees.Generic_Operations;