#ifndef NODE_HH #define NODE_HH /* Katie Lewis * April 2004 * Note: In codeing this, I referred to code examples from Professor Kuenning * and Matt Gnaizda. */ #include "location.hh" class Location; class Node { friend class Plant; friend class PlantIterator; public: Node(); // constructor Node(const Location&); Node(const Location&, int numsizelinks); Node(bool leaf_); ~Node(); // destructor Node& operator=(const Node&); // assignment operator Node(const Node&); // copy constructor bool add(Node* insertee, const int& maxBranching); bool addBetween(Node* insertee, const Location& child, const int& maxBranching); private: Location loc; int numLinks; int sizeLinksArray; Node** links; bool isLeaf; double leafAngle; double leafLength; void expandLinks(const int& maxBranching); void retractLinks(); }; #endif