typedef int ElementType;

        #ifndef _Tree_H
        #define _Tree_H

        struct TreeNode;
        typedef struct TreeNode *Position;
        typedef struct TreeNode *SearchTree;

        SearchTree MakeEmpty( SearchTree T );
        Position Find( ElementType X, SearchTree T );
        Position FindMin( SearchTree T );
        Position FindMax( SearchTree T );
        SearchTree Insert( ElementType X, SearchTree T );
        SearchTree Delete( ElementType X, SearchTree T );
        ElementType Retrieve( Position P );

		SearchTree MakeEmpty2( SearchTree T );
        Position Find2( ElementType X, ElementType Y, SearchTree T );
        SearchTree Insert2( ElementType X, ElementType Y, SearchTree T );
        SearchTree Delete2( ElementType X, ElementType Y, SearchTree T );

		struct TreeNode
        {
            ElementType Element;
            SearchTree  Left;
            SearchTree  Right;
			SearchTree  Child;
        };
        #endif  /* _Tree_H */

