树类一结点定义 firstchild data nextSibling i inc ude <stdlib. h> template < class t>class tree templateclass t> class treeNode friend class tree<T> //树类为友元 pr ivate TreeNode<T>* firstChild;/第一个孩子结点指针域 TreeNode<T>* nextSibling;//下一个兄弟结点指针域 public: t data //数据域 Data structure Lri
Data Structure LXJ 树类-结点定义 firstChild data nextSibling #include <stdlib.h> template <class T> class Tree; template<class T> class TreeNode { friend class Tree<T>; //树类为友元 private: TreeNode<T>* firstChild; //第一个孩子结点指针域 TreeNode<T>* nextSibling; //下一个兄弟结点指针域 public: T data; //数据域 …
树类一结点定义 //构造函数 TreeNode(T value TreeNode<T>*fc =NULL TreeNode<T> **ns NULL) data(value), firstChild(fc), nextsibl ing(ns) //访问指针域的成员函数 TreeNode<T>* &FirstChi ld ( void) return firstchild: TreeNode<T>* Nextsl ibl ing(void) return nextsibling; Data structure Lri
Data Structure LXJ … //构造函数 TreeNode(T value,TreeNode<T> *fc =NULL, TreeNode<T> *ns = NULL) :data(value),firstChild(fc),nextSibling(ns){} //访问指针域的成员函数 TreeNode<T>* &FirstChild(void) { return firstchild; } TreeNode<T>* &NextSlibling(void) { return nextSibling; } }; 树类-结点定义
树类定义 template <class t> class Tree private //数据成员 TreeNode<T>*root;//根结点指针 TreeNode<T>* current;//当前结点指针 //私有成员函数 void PreOrderTree(tree Node<T>*& t) void postorder tree(① TreeNode〈T>*&t) int Current (TreeNode<T>*& t) //在树root中回溯查找结点s的双亲结点 TreeNode<T>* SerchParent(Tree Node<T>*& root TreeNode<T》收s); Data structure Lri
Data Structure LXJ template <class T> class Tree { private: //数据成员 TreeNode<T>* root; //根结点指针 TreeNode<T>* current; //当前结点指针 //私有成员函数 void PreOrderTree(TreeNode<T>*& t); void PostOrderTree(TreeNode<T>*& t); int Current(TreeNode<T>*& t); //在树root中回溯查找结点s的双亲结点 TreeNode<T>* SerchParent(TreeNode<T>*& root, TreeNode<T>*& s); … 树类定义
树类定义 public: Tree(//构造函数 构造函数和析构函数 root current NULL Treeo//析构函数 DeleteSubTree(root) int root //使根结点为当前结点 的第 int Parent o;/使当前结点的双亲结点为当前结点 员类 int firstchi1do:∥使当前结点的第一个孩子结点为当前结点 函操 int Nextsibling(;//使当前结点的兄弟结点为当前结点 数作 Data structure Lri
Data Structure LXJ … public: Tree() //构造函数 { root = current = NULL; }; ~Tree() //析构函数 { DeleteSubTree(root); }; int Root(); //使根结点为当前结点 int Parent(); //使当前结点的双亲结点为当前结点 int FirstChild(); //使当前结点的第一个孩子结点为当前结点 int Nextsibling();//使当前结点的兄弟结点为当前结点 … 第 一 类 操 作 的 成 员 函 数 构 造 函 数 和 析 构 函 数 树类定义
树类定义 public: 第二类操作的成员函数 void InsertChild (T value) //把 value值插入到当前结点的最后一个结点 void DeleteSubTree(TreeNode<T>*& t) //删除以t为根结点的子树 int delete child(inti);//删除当前结点的第i个孩子结点 /第三类操作的成员函数 void displayTreeo;//按先根遍历次序显示树的数据域值 Data structure Lri
Data Structure LXJ public: … //第二类操作的成员函数 void InsertChild(T value); //把value值插入到当前结点的最后一个结点 void DeleteSubTree(TreeNode<T>*& t); //删除以t为根结点的子树 int DeleteChild(int i); //删除当前结点的第i个孩子结点 //第三类操作的成员函数 void DisplayTree();//按先根遍历次序显示树的数据域值 }; 树类定义