博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript数据结构与算法--二叉树遍历(中序)
阅读量:7127 次
发布时间:2019-06-28

本文共 1742 字,大约阅读时间需要 5 分钟。

javascript数据结构与算法--二叉树遍历(中序)

中序遍历按照节点上的键值,以升序访问BST上的所有节点

 

 代码如下:

/* *二叉树中,相对较小的值保存在左节点上,较大的值保存在右节点中 * * * *//*用来生成一个节点*/function Node(data, left, right) {    this.data = data;//节点存储的数据    this.left = left;    this.right = right;    this.show = show;}function show() {    return this.data;}/*用来生成一个二叉树*/function BST() {    this.root = null;    this.insert = insert;}/*将数据插入二叉树 (1)设根节点为当前节点。 (2)如果待插入节点保存的数据小于当前节点,则设新的当前节点为原节点的左节点;反 之,执行第4步。 (3)如果当前节点的左节点为null,就将新的节点插入这个位置,退出循环;反之,继续 执行下一次循环。 (4)设新的当前节点为原节点的右节点。 (5)如果当前节点的右节点为null,就将新的节点插入这个位置,退出循环;反之,继续 执行下一次循环。 * */function insert(data) {    var n = new Node(data, null, null);    if (this.root == null) {        this.root = n;    }    else {        var current = this.root;        var parent;        while (true) {            parent = current;            if (data < current.data) {                current = current.left;//待插入节点保存的数据小于当前节点,则设新的当前节点为原节点的左节点                if (current == null) {
//如果当前节点的左节点为null,就将新的节点插入这个位置,退出循环;反之,继续执行下一次while循环。 parent.left = n; break; } } else { current = current.right;//待插入节点保存的数据小于当前节点,则设新的当前节点为原节点的左节点 if (current == null) { parent.right = n; break; } } } }}/*中序遍历 *用递归的方法 */function inOrder(node) { if (!(node == null)) { inOrder(node.left); console.log(node.show() + " "); inOrder(node.right); }} /* 测试代码 */var nums = new BST();nums.insert(23);nums.insert(45);nums.insert(16);nums.insert(37);nums.insert(3);nums.insert(99);nums.insert(22);console.log("中序遍历: ");inOrder(nums.root);

 

转载于:https://www.cnblogs.com/baiyangyuanzi/p/6694120.html

你可能感兴趣的文章
大话RAC介质恢复---联机日志损坏
查看>>
oracle 内存分配和调优 总结
查看>>
移植最新版libmemcached到VC++的艰苦历程和经验总结(上)
查看>>
诡异的bug: tcsh陷入死循环
查看>>
java-第一章-上机练习-04
查看>>
Active Directory 基础 (1)
查看>>
xml地图生成网址
查看>>
Python 练习1
查看>>
TCExam文件代码注释分析(后台首页admin/code/index.php)
查看>>
Finereport在企业级BI分析中的应用
查看>>
linux内核参数注释与优化
查看>>
linux 2.6x内核升级
查看>>
pxe
查看>>
NFS网络文件系统安装
查看>>
网页嵌入自动生成当前网页二维码图片代码
查看>>
Linux时间同步服务
查看>>
Python基础-----列表、元组、集合(2)
查看>>
iptables详解
查看>>
Redisson官方文档 - 12. 独立节点模式
查看>>
AD域笔记
查看>>