class BinaryTree; template class BinarySearchTree; template class BinaryTreeNode { friend class BinaryTree ; friend class BinarySearchTree ; private: T element; //二叉树结点数据域 BinaryTreeNode * left; //二叉树结点指向左子树的指针 BinaryTreeNode * right; //二叉树结点指向左子树的指针 public: BinaryTreeNode(); BinaryTreeNode(const T& ele); //给定数据的构造函数 BinaryTreeNode(const T& ele,BinaryTreeNode* l, BinaryTreeNode* r);//给定数据的左右指针的构造函数 T value() const; //返回当前结点的数据 BinaryTreeNode & operator= (const BinaryTreeNode & Node) {this=Node;}; //重载赋值操作符 BinaryTreeNode * leftchild() const; //返回当前结点指向左子树的指针 BinaryTreeNode * rightchild() const; //返回当前结点指向右子树的指针 void setLeftchild(BinaryTreeNode *); //设置当前结点的左子树 void setRightchild(BinaryTreeNode *); //设置当前结点的右子树 void setValue(const T& val); //设置当前结点的数据域 bool isLeaf() const; //判定当前结点是否为叶结点 , 若是返回true }; //***************************************************************************// //**********************Class BinaryTreeNode Implementation******************// //***************************************************************************// template BinaryTreeNode ::BinaryTreeNode() { left=right=NULL; } template BinaryTreeNode ::BinaryTreeNode(const T& ele) //给定数据的构造函数 { element=ele; left=right=NULL; } template BinaryTreeNode ::BinaryTreeNode(const T& ele,BinaryTreeNode* l, BinaryTreeNode* r) //给定数据的左右指针的构造函数 { element=ele; left=l; right=r; } template T BinaryTreeNode ::value() const { return element; } template BinaryTreeNode * BinaryTreeNode ::leftchild() const { return left; } //返回当前结点指向左子树的指针 template BinaryTreeNode * BinaryTreeNode ::rightchild() const { return right; //返回当前结点指向右子树的指针 } template void BinaryTreeNode ::setLeftchild(BinaryTreeNode * subroot)//设置当前结点的左子树 { left=subroot; } template void BinaryTreeNode ::setRightchild(BinaryTreeNode * subroot)//设置当前结点的右子树 { right=subroot; } template void BinaryTreeNode ::setValue(const T& val) //设置当前结点的数据域 { element = val; } template bool BinaryTreeNode ::isLeaf() const //判定当前结点是否为叶结点 , 若是返回true { return (left == NULL) && (right == NULL); } #endif // !defined(AFX_BINARYTREENODE_H__65C73C3B_E763_40D9_8460_F5703119C756__INCLUDED_) 。
4.数据结构 线性表基本格式 是什么意思啊线性表代表的是一种逻辑结构 , 譬如数组也是线性表 , 可以直观得看成一条线上有很多个数据
代表C++标准输入输出头文件 有这个才可以用一些输入输出的库函数
using namespace std;表示使用标准命名空间 , 说明程序中用的一些变量是在这个std最中命名的 如果再使用一个 其他的namespace 那么可以使用相同的变量名了
class node 是类的开头其中node是类名
推荐找些书好好看看 , 推荐学完这个你的C++基本没什么问题了
祝你学习进步!
【数据结构头文件怎么写】

文章插图