[数据结构]javascript实现二叉查找树
来源:互联网 发布:激战2人类女捏脸数据库 编辑:程序博客网 时间:2024/06/08 01:57
javascript实现二叉树的原理:
//二叉查找树是由节点组成,所以我们首先要定义一个Node类,包含了数据、左右节点、读取数据的方法; function Node(data, left, right){ this.data = data; this.left = left; this.right = right this.show = show; } function show(){ return this.data } //定义树BST function BST(){ this.root = null; this.insert = insert; } function insert(data){ var newNode = new Node(data, null, null); if (this.root == null){ this.root = newNode; } else { var current = this.root; var parent; while (true){ parent = current; if (current.data > data ){ current = current.left; if (current == null){ parent.left = newNode; break; } } else { current = current.right; if (current == null){ parent.right = newNode; break; } } } } } //中序遍历 function inOrder(node){ if (node){ inOrder(node.left); console.log(node.data); inOrder(node.right); } } //先序遍历 function preOrder(node){ if (node){ console.log(node.data); preOrder(node.left); preOrder(node.right); } } //后序遍历 function postOrder(node){ if (node){ postOrder(node.left); postOrder(node.right); console.log(node.data); } } //初始化一棵树,然后中序遍历 var bst = new BST(); bst.insert(23); bst.insert(122); bst.insert(112); bst.insert(123); bst.insert(12); bst.insert(2); bst.insert(10); console.log('中序遍历:');//2,10,12,23,112,122,123 inOrder(bst.root); console.log('先序遍历:');//23,12,2,10,122,112,123 preOrder(bst.root); console.log('后序遍历:'); postOrder(bst.root);//10,2,12,112,123,122,23
用js二叉树实现的demo
https://shaojinghong.github.io/js-DataStructure/
阅读全文
0 0
- [数据结构]javascript实现二叉查找树
- 数据结构:JavaScript实现二叉查找树
- JavaScript实现二叉树查找
- 数据结构与算法JavaScript - 二叉树和二叉查找树
- C 实现数据结构二叉查找树
- 数据结构二叉查找树C++实现
- 数据结构--二叉查找树的java实现
- Java实现数据结构之二叉查找树
- [数据结构]二叉查找树 简单实现
- 数据结构:二叉查找树(C语言实现)
- 数据结构:二叉数查找树基本实现
- 数据结构实战java实现二叉查找树
- 数据结构之Java实现二叉查找树
- 【学习点滴-数据结构-二叉树】二叉查找树源码实现
- 数据结构:二叉查找树
- 数据结构--二叉查找树
- 【数据结构】二叉查找树
- 【数据结构】二叉查找树
- 系统分区——Linux使用教程(一)
- 剑指offer_二叉树---二叉树的镜像
- 解决mysql不能远程连接的问题
- 杭电2063 过山车
- 2017年8月写给自己的一封信-yellowcong
- [数据结构]javascript实现二叉查找树
- Executor和线程池
- 【拜小白opencv】16-用四种方法访问图像中的每个像素
- 51nod 1067 BashV2
- Neo4j CQL
- javaWEB---servlet简单理解
- 从FMDB到WCDB、微信团队怎么说-
- git命令之git tag 给当前分支打标签
- 密码学中的“盐值 Salt”