手机版

JavaScript数据结构与算法之二叉树添加/删除节点操作示例

时间:2021-08-27 来源:互联网 编辑:宝哥软件园 浏览:

本文实例讲述了Java脚本语言数据结构与算法之二叉树添加/删除节点操作。分享给大家供大家参考,具体如下:

函数节点(数据,左,右){ this . data=data this . left=left this . right=右;this.show=show}函数show(){ 0返回this.data}函数BST(){这个。root=nullthis . insert=insert this . inoder=inoderthis . getmin=getminthis . getmax=getmaxthis . find=find this . remove=移除;}函数插入(数据){ var n=新节点(数据,null,null);如果(这个。root==null){ this。root=n;} else { var current=this.rootvar父级;while(current){ parent=current;if(当前数据。数据){ current=current。向左;if(current==null){ parent。左=n;打破;} } else { current=current . right if(current==null){ parent。右=n;打破;} } } }}//中序遍历函数inOrder(节点){ if(!(节点==null)){ Inorder(节点。左);控制台。日志(节点。show());inoder(节点。右);}}//先序遍历函数preOrder(节点){ if(!(节点==null)){控制台。日志(节点。show());preOrder(节点。左);preOrder(节点。右);}}//后序遍历函数postOrder(节点){ if(!(node==null)){ PostOrder(节点。左);posterorder(节点。右);console.log('后序遍历节点。show());}}//二叉树查找最小值函数GetMIn(){ var current=this。根;while(!(当前。left==null)){ current=current。向左;}返回current.data}//二叉树上查找最大值函数GetMax(){ var current=this。根;while(!(当前。right==null)){ current=current。右;}返回current.data}//查找给定值函数find(data){ var current=this。根;而(当前!=null){ if(当前。data==data){返回电流;} else if(当前数据。数据){ current=current。向左;} else { current=current.right} }返回null}函数移除(数据){ root=移除节点(this。根,数据);}函数getminist(节点){ if(节点。left==null){返回节点;} else { return getminist(节点。左);} }函数removeNode(节点,数据){ if(node==null){返回null;}如果(数据==node.data) { //没有子节点的节点if(节点。left==null节点。right==null){ return null;} //没有左子节点的节点if(节点。left==null){返回节点。右;} //没有右子节点的节点if(节点。right==null){返回节点。向左;} //有2个子节点的节点var tempNode=getminist(node。右);节点。data=tempnode。数据;节点。right=移除节点(节点。对,临时节点。数据);返回节点;} else if(数据节点。数据){ node。left=移除节点(node。左,数据);返回节点;} else { node。right=移除节点(节点。右,数据);返回节点;}}//代码初始化如下:var nums=new BST();nums。插入(23);nums。插入(45);nums。插入(16);nums。插入(37);nums。插入(3);nums。插入(99);nums。插入(22);var min=nums。getMIn();console.log(分钟);var max=nums。GetMax();console.log(最大值);定义变量值=nums。find(' 45 ');console.log(值);nums。移除(23);运行结果:

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://工具。JB 51。net/code/HTMljsrun测试上述代码运行效果。

更多关于Java脚本语言相关内容感兴趣的读者可查看本站专题: 《JavaScript数学运算用法总结》 、 《JavaScript数据结构与算法技巧总结》 、 《JavaScript数组操作技巧总结》 、 《JavaScript排序算法总结》 、 《JavaScript遍历算法与技巧总结》 、 《JavaScript查找算法技巧总结》 及《JavaScript错误与调试技巧总结》

希望本文所述对大家Java脚本语言程序设计有所帮助。

版权声明:JavaScript数据结构与算法之二叉树添加/删除节点操作示例是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。