C语言 中二叉查找树的原理是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

二叉查找树性质
1、二叉树
每个树的节点最多有两个子节点的树叫做二叉树。

2、二叉查找树
一颗二叉查找树是按照二叉树的结构来组织的,并且满足一下性质:
一个节点所有左子树上的节点不大于盖节点,所有右子树的节点不小于该节点。
对查找树的操作查询,插入,删除等操作的时间复杂度和树的高度成正比, 因此,构建高效的查找树尤为重要。
查找树的遍历
先序遍历
查找树的遍历可以很简单的采用递归的方法来实现。
struct list
{
struct list *left;//左子树
struct list *right;//右子树
int a;//结点的值
};
void preorder(struct list *t)//t为根节点的指针
{
if(t!=NULL)
{
printf("%d,",t->a);
preorder(t->left);
perorder(t->right);
}
}中序遍历
struct list
{
struct list *left;//左子树
struct list *right;//右子树
int a;//结点的值
};
void preorder(struct list *t)//t为根节点的指针
{
if(t!=NULL)
{
preorder(t->left);
printf("%d,",t->a);
perorder(t->right);
}
}后序遍历
struct list
{
struct list *left;//左子树
struct list *right;//右子树
int a;//结点的值
};
void preorder(struct list *t)//t为根节点的指针
{
if(t!=NULL)
{
preorder(t->left);
perorder(t->right);
printf("%d,",t->a);
}
}查找树的搜索
给定关键字k,进行搜索,返回结点的指针。
struct list
{
struct list *left;//左子树
struct list *right;//右子树
int a;//结点的值
};
struct list * search(struct list *t,int k)
{
if(t==NULL||t->a==k)
return t;
if(t->aright);
else
search(t>left);
}; 也可以用非递归的形式进行查找
struct list
{
struct list *left;//左子树
struct list *right;//右子树
int a;//结点的值
};
struct list * search(struct list *t,int k)
{
while(true)
{
if(t==NULL||t->a==k)
{
return t;
break;
}
if(t->arigth;
else
t=t->left;
}
}; 大值和最小值查询
根据查找树的性质,最小值在最左边的结点,大值的最右边的 结点,因此,可以直接找到。
下面是大值的例子:
{
struct list *left;//左子树
struct list *right;//右子树
int a;//结点的值
};
struct lsit *max_tree(struct lsit *t)
{
while(t!=NULL)
{
t=t->right;
}
return t;
};查找树的插入和删除
插入和删除不能破坏查找树的性质,因此只需要根据性质,在树中找到相应的位置就可以进行插入和删除操作。
struct list
{
struct list *left;//左子树
struct list *right;//右子树
int a;//结点的值
};
void insert(struct list *root,struct list * k)
{
struct list *y,*x;
x=root;
while(x!=NULL)
{
y=x;
if(k->aa)
{
x=x->left;
}
else
x=x->right;
}
if(y==NULL)
root=k;
else if(k->aa)
y->left=k;
else
y->right=k;
} 关于C语言 中二叉查找树的原理是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联网站建设公司行业资讯频道了解更多相关知识。
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章名称:C语言中二叉查找树的原理是什么-创新互联
标题路径:http://jxjierui.cn/article/dgopso.html


咨询
建站咨询
