本文主要是介绍二叉排序树查找,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如果找到,返回比较的次数,否则返回-1#include<iostream>
using namespace std;
#include<cstdio>
#include<cstdlib>
typedef struct node
{int key;int data;struct node *lc,*rc;
}BT;
//二叉排序树的插入
int insert(BT *&p,int k)
{if(p==NULL){p=(BT *)malloc(sizeof(BT));p->key=k;p->lc=p->rc=NULL;return 1;}else if(k==p->key)return 0;else if(k<p->key)return insert(p->lc,k);elsereturn insert(p->rc,k);
}
//二叉排序树的生成
BT *create(int a[],int n)
{BT *t=NULL;int i=0;while(i<n){insert(t,a[i]);i++;}return t;
}
//二叉排序树的查找
int h=0;
BT *x;
void search(BT *t,int k)
{h++;if(t==NULL||t->key==k){x=t;return ;}if(k<t->key)search(t->lc,k);elsese
这篇关于二叉排序树查找的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!