二叉排序树
来源:互联网 发布:网吧服务器优化 编辑:程序博客网 时间:2024/06/07 04:06
二叉搜索树(二叉排序树):
(1)是棵空树
(2)若左子树不空,左子树上所有结点的值均小于他的根节点的值;若右子树不空,则右子树上所有的结点的值均大于它的根节点的值。
(3)左子树和右子树均为二叉排序树
#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<stack>#define inf 0x3f3f3f3fusing namespace std;struct BinarySortTreeNode{ int data; BinarySortTreeNode *lchild,*rchild;};void InsertBinarySortTree(BinarySortTreeNode* &T,int k){ if(T==NULL) { T=(BinarySortTreeNode*)malloc(sizeof(BinarySortTreeNode)); T->data=k; T->lchild=NULL; T->rchild=NULL; } else { if(k>T->data) InsertBinarySortTree(T->rchild,k); if(k<T->data) InsertBinarySortTree(T->lchild,k); }}bool FindNode(BinarySortTreeNode* T,int k){ if(T==NULL) return false; if(T->data==k) return true; else if(k>T->data) return FindNode(T->rchild,k); else return FindNode(T->lchild,k);}int main(){ int n; cin>>n; BinarySortTreeNode *T=NULL; for(int i=1;i<=n;i++) { int k; cin>>k; InsertBinarySortTree(T,k); } int num; cin>>num; while(num--) { int v; cin>>v; if(FindNode(T,v)==true) cout<<"Yes"<<endl; else cout<<"No"<<endl; } return 0;}
阅读全文
0 0
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- 二叉排序树
- Spring与Struts2整合
- short i =1; i=i+1与short i=1; i+=1的区别
- [python + pillow] 自制壁纸不完全教程
- Struts2-配置文件
- Qt使用QWT绘制科学图表和图形
- 二叉排序树
- spring的AOP(五)----Spring AOP 编程(AspectJ )
- bootstrap入门
- select下拉框
- D
- C++中重载、重写(覆盖)和隐藏的区别
- Usage scenarios
- Struts2-Action
- C++名称空间