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

📄 l6_11.cpp

📁 《C++程序设计教程》电子教案及例题源码
💻 CPP
字号:
#include <iostream.h>
class CTree
{
private:
	int value;
	CTree *left, *right;
public:
	CTree(int v);
	~CTree();
	int GetValue();
	void add(int v);
	CTree *find(int v);

};

CTree::CTree(int v)
{
	value = v;
	left = NULL;
	right = NULL;
}

CTree::~CTree()
{
	if(left)
	{
		delete left;
		left = NULL;
	}
	if(right)
	{
		delete right;
		right = NULL;
	}
	
}

int CTree::GetValue()
{
	return value;
}
void CTree::add(int v)
{
	if(v==value)
		return;
	else if(v < value)
	{
		if(left != NULL)
			left->add(v);
		else
			left = new CTree(v);
	}
	else
	{
		if(right != NULL)
			right->add(v);
		else
			right = new CTree(v);
	}
}

CTree* CTree::find(int v)
{
	if(v==value)
		return this;
	else if(v < value)
	{
		if(left != NULL)
			return left->find(v);
		else
			return NULL;
	}
	else 
	{
		if(right != NULL)
			return right->find(v);
		else
			return NULL;
	}
}

void main()
{
	CTree *root;
	root = new CTree(10);

	root->add(20);
	root->add(2);
	root->add(6);
	root->add(35);
	root->add(15);

	CTree *n1, *n2;
	n1=root->find(6);
	if(n1)
		cout << n1->GetValue() << endl;
	else
		cout << "not found!" << endl;
	n2=root->find(7);
	if(n2)
		cout << n2->GetValue() << endl;
	else
		cout << "not found!" << endl;
	delete root;
}

⌨️ 快捷键说明

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