JavaScript中怎么构建一个avl树
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这期内容当中小编将会给大家带来有关JavaScript中怎么构建一个avl树,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。function Node(value)
千家信息网最后更新 2025年12月03日JavaScript中怎么构建一个avl树
这期内容当中小编将会给大家带来有关JavaScript中怎么构建一个avl树,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
function Node(value) {this.value = value;this.left = this.right = null;this.height = 0;}function height(node) {return node ? node.height : 0;}function rotateLeft(node) {const right = node.right;node.right = right.left;right.left = node;node.height = Math.max(height(node.left, node.right)) + 1;right.height = Math.max(height(right.left, right.right)) + 1;return right;}function rotateRight(node) {const left = node.left;node.left = left.right;left.right = node;node.height = Math.max(height(node.left, node.right)) + 1;left.height = Math.max(height(left.left, left.right)) + 1;return left;}function rotateLeftRight(node) {node.left = rotateLeft(node.left);return rotateRight(node);}function rotateRightLeft(node) {node.right = rotateRight(node.right);return rotateLeft(node);}function avlTreeInsert(node, value) {if (!node) {node = new Node(value);} else if (value > node.value) {node.right = avlTreeInsert(node.right, value);if (height(node.right) - height(node.left) == 2) {if (value > node.right.value) {node = rotateLeft(node);} else {node = rotateRightLeft(node);}}} else if (value < node.value){node.left = avlTreeInsert(node.left, value);if (height(node.right) - height(node.left) == 2) {if (value > node.left.value) {node = rotateRight(node);} else {node = rotateLeftRight(node);}}}node.height = Math.max(height(node.right), height(node.left)) + 1;return node;}(function test() {let i = 0;let data = [];while(i < 100) {data.push(i++);}i = 0;let root;while(i < data.length) {root = avlTreeInsert(root, data[i++]);}const queue = [root];let current;while(current = queue.shift()) {console.log(current.value, height(current.right) - height(current.left));queue.push(current.right);queue.push(current.left);}console.log(root);console.log(find(root ,99))})();function find(node, value) {if (!node) {return null;}if (node.value === value) {return node;}return find(node.value > value ? node.left : node.right, value);}
上述就是小编为大家分享的JavaScript中怎么构建一个avl树了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
内容
分析
专业
中小
内容丰富
就是
文章
更多
知识
篇文章
行业
角度
资讯
资讯频道
频道
有关
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
宽城区网络安全经验丰富
查看迷你sql数据库密码
软件开发为什么要分步骤
宜兴互联网智能科技产品是什么
网络安全教育的绘画一幅
服务器9081端口时断时续
数据库小表查询耗时
口袋冒险家可以转服务器吗
陆川县网络安全
猪八戒网总部软件开发
隐藏代理服务器
网络安全公司的人均指标
网络安全cp是哪个产品
传感网络安全协议栈
科农互联网科技有限公司
网络安全警示教育案例
软件开发合同交什么税
配置管理是网络安全的基础
网络安全有奖知识竞答
苏州图可互联网信息科技有限公司
魔兽世界十区主宰之剑服务器
深圳web前端软件开发正规平台
一年经验软件开发工资多少
查询所有数据库的代码
java 怎样连接数据库
计算机网络技术网课章节测试答案
网络安全知识小报内容
崩坏三新手去哪个服务器
oracle添加数据库
网络安全教育班会策划书模板