二叉查找树(c++)
二叉查找数的操作:
#include <iostream> using namespace std; typedef struct BitNode
{
int data;
struct BitNode *lChild,*rChild;
}BitNode; int main()
{
void InitTree(BitNode *&BitTree);
int PrintTree(BitNode *BitTree);
int SearchNode(BitNode *BitTree,int x);
int InsertNode(BitNode *&BitTree,int x);
int depthtree(BitNode *&BitTree);
BitNode *BitTree;
int dep=;
BitTree=new BitNode;
InitTree(BitTree);
PrintTree(BitTree);
SearchNode(BitTree,);
InsertNode(BitTree,);
InsertNode(BitTree,);
PrintTree(BitTree);
dep=depthtree(BitTree);
cout<<"二叉查找树的高度是:"<<dep<<endl;
return ;
} void InitTree(BitNode *&BitTree)
{
BitNode *pl,*pr;
BitTree->data=;
pl=new BitNode;
pl->data=;
pl->lChild=pl->rChild=NULL;
BitTree->lChild=pl;
pr=new BitNode;
pr->data=;
pr->lChild=pr->rChild=NULL;
BitTree->rChild=pr;
} int PrintTree(BitNode *BitTree)
{
if(BitTree)
{
cout<<BitTree->data<<endl;
PrintTree(BitTree->lChild);
PrintTree(BitTree->rChild);
}
return ;
}
int SearchNode(BitNode *BitTree,int x)
{
while(BitTree)
{
if(BitTree->data==x)
{
cout<<"find x="<<x<<endl;
return ;
}
if(x<BitTree->data)
BitTree=BitTree->lChild;
else
BitTree=BitTree->rChild;
}
cout<<"cannot find x="<<x<<endl;
return ;
}
int InsertNode(BitNode *&BitTree,int x)
{
if(BitTree==NULL)
{
BitNode *p;
p=new BitNode;
p->data=x;
p->lChild=p->rChild=NULL;
BitTree=p;
cout<<"insert successfully"<<endl;
return ;
}
else if(x<BitTree->data)
{
InsertNode(BitTree->lChild,x);
}
else
{
InsertNode(BitTree->rChild,x);
}
return ;
} int depthtree(BitNode *&BitTree)
{
int dr=,dl=;
if(BitTree==NULL)
return ;
dr=+depthtree(BitTree->rChild);
dl=+depthtree(BitTree->lChild);
return dr>=dl?dr:dl;
}
共勉。
二叉查找树(c++)的更多相关文章
- 数据结构:二叉查找树(C语言实现)
数据结构:二叉查找树(C语言实现) ►写在前面 关于二叉树的基础知识,请看我的一篇博客:二叉树的链式存储 说明: 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: 1.若其左子树不空,则左子树上 ...
- 数据结构笔记--二叉查找树概述以及java代码实现
一些概念: 二叉查找树的重要性质:对于树中的每一个节点X,它的左子树任一节点的值均小于X,右子树上任意节点的值均大于X. 二叉查找树是java的TreeSet和TreeMap类实现的基础. 由于树的递 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- 平衡二叉查找树(AVL)的理解与实现
AVL树的介绍 平衡二叉树,又称AVL(Adelson-Velskii和Landis)树,是带有平衡条件的二叉查找树.这个平衡条件必须要容易保持,而且它必须保证树的深度是 O(log N).一棵AVL ...
- 二叉查找树 C++实现(含完整代码)
一般二叉树的查找是通过遍历整棵二叉树实现,效率较低.二叉查找树是一种特殊的二叉树,可以提高查找的效率.二叉查找树又称为二叉排序树或二叉搜索树. 二叉查找树的定义 二叉排序树(Binary Search ...
- 数据结构——二叉查找树、AVL树
二叉查找树:由于二叉查找树建树的过程即为插入的过程,所以其中序遍历一定为升序排列! 插入:直接插入,插入后一定为根节点 查找:直接查找 删除:叶子节点直接删除,有一个孩子的节点删除后将孩子节点接入到父 ...
- Java for LintCode 验证二叉查找树
给定一个二叉树,判断它是否是合法的二叉查找树(BST) 一棵BST定义为: 节点的左子树中的值要严格小于该节点的值. 节点的右子树中的值要严格大于该节点的值. 左右子树也必须是二叉查找树. ...
- 数据结构和算法 – 9.二叉树和二叉查找树
9.1.树的定义 9.2.二叉树 人们把每个节点最多拥有不超过两个子节点的树定义为二叉树.由于限制子节点的数量为 2,人们可以为插入数据.删除数据.以及在二叉树中查找数据编写有效的程序了. 在 ...
- 二叉树-二叉查找树-AVL树-遍历
一.二叉树 定义:每个节点都不能有多于两个的儿子的树. 二叉树节点声明: struct treeNode { elementType element; treeNode * left; treeNod ...
- 二叉查找树的Java实现
为了克服对树结构编程的恐惧感,决心自己实现一遍二叉查找树,以便掌握关于树结构编程的一些技巧和方法.以下是基本思路: [1] 关于容器与封装.封装,是一种非常重要的系统设计思想:无论是面向过程的函数,还 ...
随机推荐
- webpack4.0入门配置文件
wepback风头正火 ,但是公司一直在用gulp,正好赶上年底活动,借此机会第一次尝试了webpack,说实话webpack真的很强大,内容一层一层递进. 这几天跟着官网跑了一遍,然后写了自己的配置 ...
- MySql8最新配置方式(完美)
下载MYSQL8 地址:https://www.mysql.com/downloads/ 1.滑动网页到最下面,选择Community (GPL) Downloads » 2.选择MySQL Comm ...
- Android 远程连接数据库。。。。。
本来是 6.0.6 换成mysql 5.1.14 驱动ok.... 将方法 放在 new Thread() 解决..... 只能在主线程绘制ui.... 解决办法...子Thread 获取数据后,将 ...
- partial、struct、interface与C#和CLR的关系
partial.struct.interface是C#编译器特有的,CLR对此一无所知.
- O - 听说下面都是裸题 (最小生成树模板题)
Economic times these days are tough, even in Byteland. To reduce the operating costs, the government ...
- 移动性能测试 | 持续集成中的 Android 稳定性测试
前言 谈到Android稳定测试,大多数会联想到使用monkey工具来做测试.google官方提供了monkey工具,可以很快速点击被应用,之前我有一篇帖子提到了monkey工具的使用,详见: htt ...
- WEB视频播放器插件,总结
WEB视频播放器插件,总结 2018年07月29日 20:42:11 流光忆莲 阅读数:572更多 个人分类: 推荐文章收藏 以下是关于网页中嵌入视频播放插件的各种资料的总结 基于H5的Vedio ...
- hive中解析json数组
-- hive中解析json数组 select t1.status ,substr(ss.col,,) as col ,t3.evcId ,t3.evcLicense ,t3.evcAddress , ...
- shell 0学习
例一:列出/home 文件夹下的所有文件和目录的详细资料,可以使用如下命令: ls -a -l /home ls -al /home 例二:列出当前目录中所有以”d”开头的文件目录的详细内容,可 ...
- 使用bootstrap创建上传文件
1.导入样式,注意顺序 <!-- bootstrap样式 --> <link rel="stylesheet" href="/static/bootst ...