二叉搜索树
来源:互联网 发布:学python和java哪个好 编辑:程序博客网 时间:2024/06/04 23:18
#include<iostream>#include<cstdlib>#include<cmath>#include<cstring>using namespace std;typedef struct node{ int key; struct node *lChild,*rChild;}Node,*BST;//给定的BST中插入结点,其数据域为element,使之成为新的STbool BSTInsert(Node * &p,int element){ if(NULL==p)//空树 { p=new Node; p->key=element; p->lChild=p->rChild=NULL; return true; } if(element==p->key)//BST中不能有相等的值; return false; if(element<p->key)//递归; return BSTInsert(p->lChild,element); return BSTInsert(p->rChild,element);}//建立BSTvoid creatBST(node * &T,int a[],int n){ T=NULL; int i; for(int i=0;i<n;i++) { BSTInsert(T,a[i]); }}//先序遍历void preOrderTraverse(BST T){ if(T) { cout<<T->key<<" "; preOrderTraverse(T->lChild); preOrderTraverse(T->rChild); }}//中序遍历void inOrderTraverse(BST T){ if(T) { inOrderTraverse(T->lChild); cout<<T->key<<" "; inOrderTraverse(T->rChild); }}int main(){ int a[10]={4,5,2,1,0,9,3,7,6,8}; int n=10; BST T; //并非所有的[]都能构构造出BST,所以,最好对reatBST的返回值进行判断; creatBST(T,a,n); preOrderTraverse(T); cout<<endl; inOrderTraverse(T); cout<<endl; return 0;}
阅读全文
0 0
- 【二叉搜索数】HDU3791二叉搜索树
- 二叉树--二叉搜索树
- 【二叉树】二叉搜索树
- 二叉树- 二叉搜索树
- 【搜索树】二叉搜索树
- 二叉搜索树BSTree
- 二叉搜索树
- 二叉搜索树
- 二叉搜索树
- 最优二叉搜索树
- 二叉搜索树
- 二叉搜索树
- HDOJ3791 二叉搜索树
- 二叉查找树搜索
- 二叉搜索树
- 二叉搜索树
- BST 二叉搜索树
- 二叉搜索树
- 1016. Uniqueness of MST (35)
- JAVA继承与多态概述
- 编译caffe windows vs2013 Nuget 无法下载 依赖包
- 算法之选择排序算法(golang)
- 方法的调用和类和对象基础的小例子
- 二叉搜索树
- ubuntu中让echo命令显示带颜色的字
- 命令窗口的打开
- Nginx系列—重要算法介绍
- fzu--据说题目很水
- hdu1811Rank of Tetris (拓扑排序+并查集)
- 数据结构之栈和队列
- 策略模式
- 安卓日历