`
willzh
  • 浏览: 300898 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

BST树

    博客分类:
  • c++
阅读更多
BST树(未完成):
#include <iostream>
#include <cstdlib>
using namespace std;


template<class Type> class BST
{
private:
	BST<Type> *lchild, *rchild;

public:
	Type data;

	BST(Type data)
	{
		this->data = data;
		lchild = NULL;
		rchild = NULL;
	}

	~BST()
	{
	}
	bool find(int item)
	{
		if(data==item)
		{
			return true;
		}
		else if(data>item)
		{
			if(lchild)
			{
				return lchild->find(item);
			}
		}
		else if(data<item)
		{
			if(rchild)
			{
				return rchild->find(item);
			}
		}
		return false;
	}
	void release()
	{
		if(lchild)
		{
			lchild->release();
			delete lchild;
			lchild = NULL;
		}
		if(rchild)
		{
			rchild->release();
			delete rchild;
			rchild = NULL;
		}
	}
	BST<Type> left()
	{
		return lchild;
	}
	BST<Type> right()
	{
		return rchild;
	}
	bool insert(Type item)
	{
		if(item<data)
		{
			if(lchild)
			{
				lchild->insert(item);
			}
			else
			{
				lchild = new BST(item);
			}
			return true;
		}
		if(item>data)
		{
			if(rchild)
			{
				rchild->insert(item);
			}
			else
			{
				rchild = new BST(item);
			}
			return true;
		}
		return false;
	}
	void inorder(BST<Type> *current)
	{
		if(current)
		{
			current->inorder(current->lchild);
			cout<<current->data<<" ";
			current->inorder(current->rchild);
		}
	}
};

int main()
{
	BST<int> bst(32);
	char c = 'A';
	
	bst.insert(30);
	bst.insert(40);
	bst.insert(300);
	bst.insert(34);
	bst.insert(1);

	bst.inorder(&bst);
	cout<<endl;

	cout<<"bst.find(30): "<<bst.find(30)<<endl;
	cout<<"bst.find(310): "<<bst.find(310)<<endl;
	
	system("pause");
	return 0;
}
分享到:
评论

相关推荐

    湖南大学数据结构实验3BST树实验报告

    ### 湖南大学数据结构实验3BST树实验报告知识点解析 #### 一、需求分析 **1. 程序基本功能** 本程序的主要功能是根据用户输入的数据构建一个二叉搜索树(Binary Search Tree, BST),并在构建完成后提供查找功能。...

    BST树的构建与应用

    ### BST树的构建与应用:深入理解二叉排序树 #### 一、基础知识:什么是BST树? BST树,即**二叉搜索树**(Binary Search Tree),是一种特殊的二叉树,其每个节点都满足以下条件: - 节点的左子树只包含键值小于...

    BST树的建立及各种操作

    建立BST树,并实现 插入 查找 删除等操作,

    BST树大神代码

    BST树,全称为二叉搜索树(Binary Search Tree),是一种重要的数据结构,广泛应用于计算机科学,尤其是在算法和数据结构的学习及实际编程中。它具备以下特性:对于任意一个节点,其左子树中的所有节点的值都小于该...

    AVL树\BST树\表table的原代码

    AVL树、BST树(二叉搜索树)和表(table)是计算机科学中重要的数据结构,它们在处理和组织大量数据时起着至关重要的作用。C++是一种广泛应用的编程语言,尤其适合实现这些数据结构。 **AVL树** 是一种自平衡的二叉...

    BST树节点的插入,删除和查找

    BST树因其特定的性质,为数据的快速插入、删除和查找提供了便利。在实际应用中,二叉搜索树常用于实现动态集合或映射,例如数据库索引。虽然BST在最坏情况下(树退化成链表)性能会降低,但在平均情况下仍能保持较好...

    BST树的实现算法的扩充

    BST树,全称为二叉搜索树(Binary Search Tree),是一种自平衡的二叉树数据结构。在BST中,每个节点包含一个键(key)、一个关联的值、一个指向左子节点的指针和一个指向右子节点的指针。根据BST的特性,对于任意...

    BST.rar_BST树_BZP8_skillxod_thinecb_use7ck

    BST树的关键特性是每个节点都包含一个键(key)、一个关联的值、一个指向左子树的引用以及一个指向右子树的引用。在任何二叉搜索树中,对于任意节点: 1. 所有左子树中的节点的键都小于该节点的键。 2. 所有右子树...

    BST树.sln

    BST树.sln

    树系列之BST树 数据结构 完整源码

    完整版二叉搜索树 /* * 参考资料: * 算法导论&gt;&gt;, 算法: 第一卷&gt;&gt; * 此程序经过大量测试, 测试类在 main.cpp文件中 * 类型 T 必须重载 &lt; &gt; == 比较运算符号 */

    用BST,红黑树,AVL树,朴素算法实现字典的查找

    在本项目中,我们主要探讨了四种不同的数据结构在实现字典查找中的应用:二叉搜索树(BST)、红黑树(Red-Black Tree)以及AVL树,还有朴素的线性查找算法。这些数据结构在计算机科学中扮演着至关重要的角色,特别是...

    js代码-二叉树-BST树

    **在JavaScript中实现BST树**,通常包括以下几个关键操作: 1. **插入节点(insertNode)**:新节点根据其值被正确地插入到树的适当位置,以保持BST的特性。插入操作通常从根节点开始,如果新节点的值小于当前节点...

    二叉查找树代码(avl,bst,rbt,sbt,splay,treap树)

    avl树,bst树(二叉查找树),rbt(红黑树),sbt(size平衡树),splay(伸展树),treap树。 3.代码以一个bst_base为基础,实现通用算法。将对象特征和存储结构通过模板参数向上传递,实现特化算法。最终各个不同...

    BST_tree.rar_bst

    哈尔滨工业大学计算机科学与技术学院的数据结构课程中,实验四是关于BST树的构造及其性能分析。 二叉搜索树,又称二叉排序树,是一种特殊的二叉树,其每个节点满足以下特性: 1. 节点的左子树只包含比当前节点小的...

    字符串处理中常用的几种数据结构及其性能分析.pdf

    数据结构包括BST树、BST树的变种、哈希表以及Trie树。 1. BST树(Binary Search Tree,二叉搜索树)是最简单直观的字符串存储结构之一。BST树中的每个节点存储一个字符串和两个指针分别指向左右孩子节点。在BST树中...

    c语言二叉排序树

    二叉排序树(Binary Search Tree,BST),又称二叉查找树或有序二叉树,是一种特殊的二叉树数据结构,其每个节点具有以下特性: 1. 左子树上所有节点的值均小于它的根节点的值; 2. 右子树上所有节点的值均大于它的...

    数据结构 查找

    9.2 给定一组关键字K={4,5,2,3,6,1},试按二叉排序树生成规则画出这棵二叉排序树,并说明用这组关键字以不同的次序输入后建立起来的二叉排序树的形态是否相同?当以中序遍历这些二叉排序树时,其遍历结果是否...

    MFC实现号码簿查询

    这里我们将深入探讨BST树的原理及其在号码簿查询中的应用,以及MFC如何与BST结合。 BST(二叉搜索树)是一种特殊的二叉树,其每个节点都遵循以下规则: 1. 左子树中的所有节点的值小于当前节点的值。 2. 右子树中...

    二叉查找树BST,可以看看

    二叉查找树(Binary Search Tree,简称BST),是一种特殊的二叉树数据结构,它具有以下特性:对于树中的任意一个节点,其左子树中所有节点的值都小于该节点的值,而右子树中所有节点的值都大于该节点的值。...

Global site tag (gtag.js) - Google Analytics