| package body Opt27_Pkg is |
| |
| type Node_Rec_T is record |
| Element : Element_T; |
| Left : Node_T; |
| Right : Node_T; |
| end record; |
| |
| function Is_Null (Node : in Node_T) return Boolean is |
| begin |
| return (Node = null); |
| end Is_Null; |
| |
| function Find_Elem (Template : Template_T; List : List_T) return Node_T is |
| Element_Found : Boolean := False; |
| Node_Walker : Node_T := null; |
| begin |
| Node_Walker := List.First_Node; |
| |
| while not Element_Found and (Node_Walker /= null) loop |
| |
| if Is_Match (Node_Walker.Element, Template) then |
| Element_Found := True; |
| else |
| Node_Walker := Node_Walker.Right; |
| end if; |
| end loop; |
| |
| return Node_Walker; |
| end; |
| |
| end Opt27_Pkg; |