本文实例讲述了JavaScript数据结构之二叉树的查找算法。分享给大家供大家参考,具体如下: 前面文章介绍了二叉树的遍历,现在谈谈在二叉树中进行查找。对二叉查找树来说,一般有以下三类查找:最大值,最小值和给定值。 查找最小值就是遍历左子树,直到找到最后一个结点,这是因为在二叉查找树中较小的值总是在左子节点上的。 代码如下: function getMin(){//查找最小值var current=this.root;//指向根节点while(current.left!=nu...
本文实例讲述了JavaScript数据结构之二叉树的删除算法。分享给大家供大家参考,具体如下: 从二叉查找树上删除节点的操作复杂程度取决于删除哪个节点。如果删除没有子节点的节点就非常简单,如果节点只有一个子节点,不管是左子节点还是右子节点,就变得稍微有点复杂,如果节点包含两个子节点就最复杂。 如果待删除节点是叶子节点,那么只需要将从父节点指向它的链接指向null。 如果待删除节点只包含一个子节点,那么原本指向它的节...
本文实例讲述了JavaScript数据结构之二叉树的计数算法。分享给大家供大家参考,具体如下: 二叉查找树的一个用途就是记录一组数据集中数据出现的次数。比如记录成绩的分布,给定一组考试成绩,如果未出现则加入树,如果已经出现则数量加一。 所以要修改Node对象,添加记录成绩出现次数加一,代码如下: function Node(data,left,right){this.data=data;this.left=left;this.right=right;this.show=show;this.count=1;//记录出现的次...
本文实例讲述了JS前端加密算法。分享给大家供大家参考,具体如下: 解密操作对服务器性能颇有消耗。寻思着能不能在前端完成。于是找到了crypto-js。 crypto-js的github地址: https://github.com/brix/crypto-js crypto-js支持各类主流算法。弄个简单点的DES加密。 function decryptByDES(ciphertext, key) {var keyHex = CryptoJS.enc.Utf8.parse(key);var decrypted = CryptoJS.DES.decrypt({ciphertext: CryptoJS.enc.Base64.pa...
代码如下:function dateFormat(date, format) { var o = { "M+": date.getMonth() + 1, //month "d+": date.getDate(), //day "h+": date.getHours(), //hour "m+": date.getMinutes(), //minute "s+": date.getSeconds(), //second "q+": Math.floor((date.getMonth() + 3) / 3), //quarter "S": date.getMilliseconds() //millisecond }; //把yyyy替换成具体的年份 if (/(y+)/.test(format)) { format = format.replace(RegExp.$...
(1)求一个数组,中的每个数字比它小的数量,比如arr[2,9,3],应该得到的结果是[0,2,1];解释:arr中第一个数字2最小,比它小的数字没有,所以个数是0,第二个数字9,比它小的个数是2个,所以返回2. 思路:可以把这个数组进行一个排序,然后拿每个数字的索引。 代码如下: function minx(nums) { //新建一个数组arr,把当前数组nums复制给它。let arr = nums.concat([]);//对数组arr进行排序,从小到大arr.sort((a, b) => a - b);//通...