}
template<class Type>void BinTree<Type>::leverOrder()const{ leverOrder(root);}template<class Type>void BinTree<Type>::leverOrder(BinTreeNode<Type>* t)const//层次遍历{ queue<BinTreeNode<Type>* > Q; if(t!=NULL) { Q.push(t); } while(!Q.empty()) { t=Q.front(); cout<<t->data<<" "; Q.pop(); if(t->leftChild!=NULL) Q.push(t->leftChild); if(t->rightChild!=NULL) Q.push(t->rightChild); } }
template<class Type>int BinTree<Type>::size(){ size(root);}template<class Type>int BinTree<Type>::size(BinTreeNode<Type>* t){ if(t==NULL) return 0; else { return size(t->leftChild)+size(t->rightChild)+1; }}template<class Type>int BinTree<Type>::height(){ height(root);}template<class Type>int BinTree<Type>::height(BinTreeNode<Type>* t){ if(t==NULL) return 0; else { int left_H=height(t->leftChild); int right_H=height(t->rightChild); return (left_H>right_H?left_H:right_H)+1; }}template<class Type>BinTreeNode<Type>* BinTree<Type>::Find(Type key){ Find(root,key);}template<class Type>BinTreeNode<Type>* BinTree<Type>::Find(BinTreeNode<Type>* t,Type key){BinTreeNode<Type>*p; if(t!=NULL) { if(t->data==key) return t; else p=Find(t->leftChild,key); if(p==NULL) return Find(t->rightChild,key); } else return NULL;}template<class Type>BinTreeNode<Type>* BinTree<Type>::Parent(Type key){ Parent(root,key);}template<class Type>BinTreeNode<Type>* BinTree<Type>::Parent(BinTreeNode<Type> *t,Type key){ if(t==NULL) return t; BinTreeNode<Type>*p=Find(key); if(p==NULL||p==t) return NULL; if(t->leftChild==p||t->rightChild==p) return t; p=Parent(t->leftChild,key); if(p!=NULL) return p; else return Parent(t->rightChild,key);}#endif
#endif
#endif新闻热点
疑难解答