#ifndef BINARYTREELNK_HPP #define BINARYTREELNK_HPP /* ************************************************************************** */ #include "../binarytree.hpp" /* ************************************************************************** */ namespace lasd { /* ************************************************************************** */ template class BinaryTreeLnk { // Must extend BinaryTree private: // ... protected: // using BinaryTree::???; // ... struct NodeLnk { // Must extend Node private: // ... protected: // ... public: // ... }; public: // Default constructor // BinaryTreeLnk() specifiers; /* ************************************************************************ */ // Specific constructors // BinaryTreeLnk(argument) specifiers; // A binary tree obtained from a LinearContainer /* ************************************************************************ */ // Copy constructor // BinaryTreeLnk(argument) specifiers; // Move constructor // BinaryTreeLnk(argument) specifiers; /* ************************************************************************ */ // Destructor // ~BinaryTreeLnk() specifiers; /* ************************************************************************ */ // Copy assignment // type operator=(argument) specifiers; // Move assignment // type operator=(argument) specifiers; /* ************************************************************************ */ // Comparison operators // type operator==(argument) specifiers; // type operator!=(argument) specifiers; /* ************************************************************************ */ // Specific member functions (inherited from BinaryTree) // type Root() specifiers; // Override BinaryTree member (throw std::length_error when empty) /* ************************************************************************ */ // Specific member functions (inherited from Container) // type Clear() specifiers; // Override Container member }; /* ************************************************************************** */ } #include "binarytreelnk.cpp" #endif