【数据结构】二叉排序树的插入、查找-创新互联
查找算法
成都创新互联公司是一家集网站建设,安岳企业网站建设,安岳品牌网站建设,网站定制,安岳网站建设报价,网络营销,网络优化,安岳网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。插入算法
代码:
#includeusing namespace std;
#define ENDFLAG 2022
typedef int KeyType;
typedef char InfoType;
typedef struct{
KeyType key;
InfoType otherinfo;
}ElemType;
typedef struct BSTNode{
ElemType data;
struct BSTNode *lchild,*rchild;
}BSTNode,*BSTree;
//二叉树插入
void Insert_BSTree(BSTree &T,ElemType e){
if(!T){ //树为空,插入根结点
T=new BSTNode;
T->data.key=e.key;
T->lchild=NULL;
T->rchild=NULL;
}
else{
if(e.keydata.key) Insert_BSTree(T->lchild,e); //要插入的元素比根结点值小,插入在左子树
else Insert_BSTree(T->rchild,e); //要插入的元素比根结点值大,插入在右子树
}
}
//二叉树的创建
void Create_BSTree(BSTree &T){
T=NULL;
ElemType e;
cin>>e.key;
while(e.key!=ENDFLAG){
Insert_BSTree(T,e); //循环插入
cin>>e.key;
}
}
//中序遍历
void InOrderTraverse(BSTree T){
if(T){
InOrderTraverse(T->lchild);
cout<data.key<<' ';
InOrderTraverse(T->rchild);
}
}
//查找
BSTree SearchBST(BSTree T,KeyType key){
if((!T)||T->data.key==key) return T; //树空(未找到) 或 已找到
else if(keydata.key) SearchBST(T->lchild,key);
else SearchBST(T->rchild,key);
}
int main(){
BSTree T;
cout<<"请输入数据:";
Create_BSTree(T);
cout<<"中序遍历结果为:";
InOrderTraverse(T);
cout<>key;
BSTree result=SearchBST(T,key);
if(result){
cout<<"找到";
}
else cout<<"未找到";
return 1;
}
运行结果:
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前文章:【数据结构】二叉排序树的插入、查找-创新互联
URL分享:http://scgulin.cn/article/cegpsj.html