前端搜索功能(Web前端基础:二叉查找树、搜索树的应用)

前端搜索功能(Web前端基础:二叉查找树、搜索树的应用)

其实前端搜索功能的问题并不复杂,但是又很多的朋友都不太了解前端搜索功能,因此呢,今天小编就来为大家分享前端搜索功能的一些知识,希望可以帮助到大家,接下来我们一起来看看这个问题的分析吧!



Web前端开发教程

树在计算机领域中也得到广泛应用,如在编译源程序如下时,可用树表示源源程序如下的语法结构。又如在数据库系统中,树型结构也是信息的重要组织形式之一。一切具有层次关系的问题都可用树来描述。满二叉树,完全二叉树,排序二叉树。

二叉查找树(BinarySearchTree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。

给定一棵二叉搜索树,请找出其中的第k小的结点。例如,(5,3,7,2,4,6,8)中,按结点数值大小顺序第三小结点的值为4。

分析:二叉搜索树就是每个节点X,大于其左子树的值,小于其右子树的值,其中序排序是递增的。使用中序遍历,每遍历一个节点,k-1,直到k减到1,即为第K小的节点

/*functionTreeNode(x){

this.val=x;

this.left=null;

this.right=null;

functionKthNode(pRoot,k){

if(pRoot===null||k===0){

前端搜索功能(Web前端基础:二叉查找树、搜索树的应用)

returnnull;

//为了能追踪k,应该把KthNodeCore函数定义在这里面,k应该在KthNodeCore函数外面

functionKthNodeCore(pRoot){

lettarget=null;

if(pRoot.left!==null){

target=KthNodeCore(pRoot.left,k);

if(target===null){

if(k===1){

target=pRoot;

if(target===null&&pRoot.right!==null){

target=KthNodeCore(pRoot.right,k);

returntarget;

returnKthNodeCore(pRoot);

二叉排序树的查找过程和次优二叉树类似,通常采取二叉链表作为二叉排序树的存储结构。中序遍历二叉排序树可得到一个关键字的有序序列,一个无序序列可以通过构造一棵二叉排序树变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。

每次插入的新的结点都是二叉排序树上新的叶子结点,在进行插入操作时,不必移动其它结点,只需改动某个结点的指针,由空变为非空即可。搜索,插入,删除的复杂度等于树高。

以上是酷仔今日整理的“Web前端基础:二叉查找树、搜索树的应用”一文,希望为正在学习Web前端的同学提供参考。

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有

相关阅读