1. 程式人生 > 其它 >二叉排序樹的查詢

二叉排序樹的查詢

技術標籤:資料結構二叉樹

在這裡插入圖片描述

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
typedef struct bstnode{
int data;
struct bstnode *lchild,*rchild;

}bstnode,*bstree;
void insertbst(bstree &mytree,int x){
if(mytree==NULL){
      mytree=new bstnode;
     mytree->data=x;
     mytree-
>lchild=NULL; mytree->rchild=NULL; }else if(x<mytree->data){ insertbst(mytree->lchild,x); }else if(x>mytree->data){ insertbst(mytree->rchild,x); } } void creatbst(bstree &mytree){ mytree=NULL; int x; cin>>x; while(x!=0){ insertbst
(mytree,x); cin>>x; } } void visit(bstree mytree){ if(mytree){ visit(mytree->lchild); cout<<mytree->data<<" "; visit(mytree->rchild); } } int searchbst(bstree mytree,int key){ if(mytree==NULL) return 0; else if(key<mytree->data)
return searchbst(mytree->lchild,key); else if(key>mytree->data) return searchbst(mytree->rchild,key); if(key==mytree->data) return 1; } int main() { bstree mytree; creatbst(mytree);//3 12 24 37 45 99 53 88 61 78 77 90 120 100 0 visit(mytree); int a=searchbst(mytree,101); cout<<endl; cout <<a<< endl; return 0; }