正在加载图片...
叉树定义中部分成员函数的实现: template <class Type> void Binary Tree<Type> destroy( bin TreeNode<Type>* current /有函数:若指针 current不空,则删除根指针为 current的子树 i if( current!= NULL destroy( current-> leftchild);∥删除左子树 destroy( current-> right Child);/删除右子树 delete current;}}∥删除根结点* current。后序遍历 template <class Type> Bin TreeNode< Type>* Binary Tree< Type Parent( BinTreeNode<Type>* start, BinTreeNode<type>* current) /有函数:在根结点为* start的二叉树中查找结点* current的父结点,若存 在则返回其指针,否则返回NULL if( start=NULL) return NULL:空树 if( start-> leftChild -current start->right Child -=current )return start ∥根结点即为所找结点 Bin TreeNode <lype>p if((p=Parent( start->left Child, current ))! NULL )return p ∥俤归搜索左子树若找到则返回其指针 else return Parent( start-> right Child, current):) 则递归搜索右子树,若找到则返回其指针,否则返回NULI 20212222021/2/22 14 二叉树定义中部分成员函数的实现: template <class Type> void BinaryTree<Type> :: destroy ( BinTreeNode<Type> * current ) //私有函数:若指针 current 不空,则删除根指针为 current 的子树 { if ( current ! = NULL ) { destroy ( current -> leftChild ) ; //删除左子树 destroy ( current -> rightChild ) ; //删除右子树 delete current ; } } //删除根结点 *current 。后序遍历 template <class Type> BinTreeNode<Type> * BinaryTree<Type> :: Parent ( BinTreeNode<Type> * start , BinTreeNode<Type> * current ) //私有函数:在根结点为 *start 的二叉树中查找结点 *current 的父结点,若存 //在则返回其指针,否则返回 NULL { if ( start == NULL ) return NULL ;//空树 if ( start -> leftChild == current || start -> rightChild == current ) return start ; //根结点即为所找结点 BinTreeNode<Type> * p ; if ((p=Parent ( start -> leftChild , current )) != NULL ) return p ; //递归搜索左子树,若找到则返回其指针 else return Parent ( start -> rightChild , current ) ; } //否则递归搜索右子树,若找到则返回其指针,否则返回 NULL
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有