今天我来介绍一下 搜索二叉树及其算法。
一。首先我们要先知道什么是搜索二叉树。
1.二叉搜索树又称为二叉排序树,它或者是一个空树。它的主要性质是
(1)若他的左子树不为空,则左子树上所有节点的值都小于根节点的值。
(2)若他的右子树不为空,则右子树上所有节点的值都大于根节点的值。
(3)它的左右子树也分别为二叉搜索树。
2.它的基本算法:查找、插入以及删除的普通和递归方法。
#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h>
#include<Windows.h>
typedef struct BSTreeNode{ //定义一个搜索二叉树的结构体
int key; //包含值、左子树和右子树。
struct BSTreeNode *pleft;
struct BSTreeNode *pright;
}BSTreeNode;
BSTreeNode *CreatNode(int key) //创建子树。
{
BSTreeNode *pNew=(BSTreeNode *)malloc(sizeof(BSTreeNode));
assert(pNew);
pNew->key=key;
pNew->pleft=pNew->pright=NULL;
return pNew;
}
//普通查找
//1:找到。
//0:没找到。
int Find(BSTreeNode *pRoot,int key)
{
BSTreeNode *p=pRoot;
while(p!&