class BiTree
{
public:
BiTree();
virtual ~BiTree();
virtual void insertNode(Node * newNode);
virtual void deleteNode(Node * delNode);
virtual void searchNode(VALUETYPE value)
{
}
virtual int getDepth();
virtual int getWidth()
{
travelwide();
return 0;
}
virtual void SetTreeDraw();
friend ostream& operator << (ostream&,BiTree&);
protected:
private:
Node * root=NULL;
TreeDrawing mytreedraw;
QQueue<Node> tempque;
QQueue<Node> resultque;
virtual void leftrotate(Node * mynode){}
virtual void rightrotate(Node * mynode){}
virtual void transplant(Node * oldnode, Node * newnode);
virtual Node * tree_min(Node * mynode);
virtual Node * tree_max(Node * mynode);
// virtual QPoint GetNodesLocation(Node * curnode);
virtual void print(Node * mynode);
virtual int traveldeep(Node * node, int layer,int line);
virtual void traveldeep(Node * node,void (* callback)(Node * node));
virtual int travelwide();
};