【数据结构】二叉排序树的插入、查找-创新互联

查找算法

成都创新互联公司是一家集网站建设,安岳企业网站建设,安岳品牌网站建设,网站定制,安岳网站建设报价,网络营销,网络优化,安岳网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

插入算法

代码: 

#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元起,快前往官网查看详情吧


标题名称:【数据结构】二叉排序树的插入、查找-创新互联
文章来源:http://abwzjs.com/article/cegpsj.html