文档详情

数据结构二叉树.doc

发布:2017-02-24约8.75千字共23页下载文档
文本预览下载声明
#includeiostream.h //#includemystring.h #includestack //#includequeue.cpp //二叉链表结点的类定义 using namespace std; templateclass T class binarytreenode { //friend class binarytreeT; private: T info; binarytreenodeT * left; binarytreenodeT * right; public: //binarytreenode() binarytreenode(T ele){info=ele;left=NULL;right=NULL;} binarytreenode(T ele,binarytreenodeT * l,binarytreenodeT * r){info=ele;left=l;right=r;} T value()const; binarytreenodeT * leftchild()const; binarytreenodeT * rightchild()const; void setleftchild(binarytreenodeT *l); void setrightchild(binarytreenodeT *l); void setvalue(T val); }; /*templateclass T binarytreenode::binarytreenode() { left=null; right=null; } templateclass T binarytreenode::binarytreenode(T ele) { info=ele; left=NULL; right=NULL; } templateclass T binarytreenode::binarytreenode(T ele,binarytreenodeT * l,binarytreenodeT * r) { info=ele; left=l; right=r; }*/ templateclass T T binarytreenodeT::value()const { return info; } templateclass T binarytreenodeT * binarytreenodeT::leftchild()const { return left; } templateclass T binarytreenodeT * binarytreenodeT::rightchild()const { return right; } templateclass T void binarytreenodeT::setleftchild(binarytreenodeT * l) { left=l; } templateclass T void binarytreenodeT::setrightchild(binarytreenodeT * r) { right=r; } templateclass T void binarytreenodeT::setvalue(T val) { info=val; } //二叉链表的类定义 templateclass T class binarytree { private: binarytreenodeT * root; public: binarytree(){root=NULL;} ~binarytree(){deletebinarytree(root);} binarytreenodeT * Root(){return root;} binarytreenodeT * parent(binarytreenodeT * current); binarytreenodeT * leftsibling(binarytreenodeT * current); binarytreenodeT * rightsibling(binarytreenodeT * current); void creattree(T info); void creattree(T info,binarytreeT lefttree,binarytreeT righttree); // void creattree(mystringchar a); void deletebinarytree
显示全部
相似文档