⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 seldef_bst.cpp

📁 二叉树
💻 CPP
字号:
// self-defined BST 

#include <iostream>
using namespace std;
#include"selDefBST.h"
#include"genQueue.h"

template<class T>
int countAllNode(BSTNode<T>* r);
//int countLeafNode(BSTNode<T>* r);
//int countRightNode(BSTNode<T>* r);
//void deleteLeafNode(BSTNode<T>* r);

void main()
{
	BSTNode<char> d('D',0,0),e('E',0,0);
	BSTNode<char> b('B',&d,&e);
	BSTNode<char> f('F',0,0),c('C',0,&f);
	BSTNode<char> a('A',&b,&c);
	int n=countAllNode(&a);
	cout<<n<<endl;


}

template<class T>
int countAllNode(BSTNode<T>* r)
{
	int n=0;
	BSTNode<T> *p=r;
	LinkedQueue<BSTNode<T>*> Q;
	while(p)
	{
		cout<<p->key;//访问p
		n++;
		//将p的孩子放入队列
		if(p->left) 
			Q.enqueue(p->left);
		if(p->right) 
			Q.enqueue(p->right);
		
		//访问下一个结点
		if(Q.IsEmpty())
			return n;
		else
			Q.dequeue(p);
	}
	/*BSTNode<char>* t=r;
	//char ch;
	int n=0;
	LinkedQueue<BSTNode<char>*> q;
	q.enqueue(t);

	while(!q.IsEmpty())
	{
		q.dequeue(t);
		cout<<t->key<<endl;
		n++;
		if(t->left!=0)
			q.enqueue(t->left);
		if(t->right!=0)
			q.enqueue(t->right);
	}*/
	return n;
}
//int countLeafNode(BSTNode* r);
//int countRightNode(BSTNode* r);
//void deleteLeafNode(BSTNode* r);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -