1 ------------------------------------------------------------------------------
3 -- GNAT LIBRARY COMPONENTS --
5 -- A D A . C O N T A I N E R S . R E D _ B L A C K _ T R E E S . --
6 -- G E N E R I C _ K E Y S --
10 -- This specification is adapted from the Ada Reference Manual for use with --
11 -- GNAT. In accordance with the copyright of that document, you can freely --
12 -- copy and modify this specification, provided that if you redistribute a --
13 -- modified version, any changes that you have made are clearly indicated. --
15 ------------------------------------------------------------------------------
17 with Ada
.Containers
.Red_Black_Trees
.Generic_Operations
;
20 with package Tree_Operations
is new Generic_Operations
(<>);
22 use Tree_Operations
.Tree_Types
;
24 type Key_Type
(<>) is limited private;
26 with function Is_Less_Key_Node
28 R
: Node_Access
) return Boolean;
30 with function Is_Greater_Key_Node
32 R
: Node_Access
) return Boolean;
34 package Ada
.Containers
.Red_Black_Trees
.Generic_Keys
is
38 with function New_Node
return Node_Access
;
39 procedure Generic_Insert_Post
40 (Tree
: in out Tree_Type
;
46 with procedure Insert_Post
47 (Tree
: in out Tree_Type
;
52 procedure Generic_Conditional_Insert
53 (Tree
: in out Tree_Type
;
55 Node
: out Node_Access
;
56 Success
: out Boolean);
59 with procedure Insert_Post
60 (Tree
: in out Tree_Type
;
65 procedure Generic_Unconditional_Insert
66 (Tree
: in out Tree_Type
;
68 Node
: out Node_Access
);
71 with procedure Insert_Post
72 (Tree
: in out Tree_Type
;
77 with procedure Unconditional_Insert_Sans_Hint
78 (Tree
: in out Tree_Type
;
80 Node
: out Node_Access
);
82 procedure Generic_Unconditional_Insert_With_Hint
83 (Tree
: in out Tree_Type
;
86 Node
: out Node_Access
);
89 with procedure Insert_Post
90 (Tree
: in out Tree_Type
;
95 with procedure Conditional_Insert_Sans_Hint
96 (Tree
: in out Tree_Type
;
98 Node
: out Node_Access
;
99 Success
: out Boolean);
101 procedure Generic_Conditional_Insert_With_Hint
102 (Tree
: in out Tree_Type
;
103 Position
: Node_Access
;
105 Node
: out Node_Access
;
106 Success
: out Boolean);
110 Key
: Key_Type
) return Node_Access
;
114 Key
: Key_Type
) return Node_Access
;
118 Key
: Key_Type
) return Node_Access
;
122 Key
: Key_Type
) return Node_Access
;
125 with procedure Process
(Node
: Node_Access
);
126 procedure Generic_Iteration
131 with procedure Process
(Node
: Node_Access
);
132 procedure Generic_Reverse_Iteration
136 end Ada
.Containers
.Red_Black_Trees
.Generic_Keys
;