js实现创建二叉树+先序遍历
二叉树概念
1.除了最下面一层,每个节点都是父节点,每个节点都有且最多有两个子节点;
2.除了嘴上面一层,每个节点是子节点,每个节点都会有一个父节点;
3.最上面一层的节点为根节点;
图例说明:
先序遍历概念
先打印父节点,然后是左子节点(左子树),然后再打印右子节点(子树)
图例说明:
最后贴代码
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Document</title> </head> <body><script>//创建二叉树function Node(data,left,right){this.data = data;this.left = left;this.right = right;}Node.prototype.show = function(){return this.data;}function BST(){this.root = null;}BST.prototype.insert = function(data){var node = new Node(data,null,null);if(this.root == null){this.root = node;}else{var current = this.root;var parent;while(true){parent = current;if(data < current.data){current = current.left;if(current == null){parent.left = node;break;}}else{current = current.right;if(current == null){parent.right = node;break;}}}}}//二叉树先序遍历BST.prototype.perOrder = function(node){if(node){console.log(node.show() + " ");this.perOrder(node.left);this.perOrder(node.right);}}//测试数据var bst = new BST();var nums = [10,3,18,2,4,13,21,9,8,9];for(var i = 0;i < nums.length;i ++){bst.insert(nums[i]);}bst.perOrder(bst.root);</script> </body> </html>
转载于:https://www.cnblogs.com/xiaohualu/p/10308071.html
js实现创建二叉树+先序遍历相关推荐
- 二叉树 —— 创建二叉树 先序遍历 、中序遍历、后序遍历(递归方式、非递归方式)
#include<stdio.h> #include<malloc.h> #include<stdlib.h> typedef char DataType; #de ...
- 一个关于二叉树的创建、先序遍历、中序遍历、后序遍历、求叶子节点的完整函数的c语言完整程序。
#include<stdlib.h> #include<stdio.h>typedef struct bitnode{int date;struct bitnode * lch ...
- 二叉树先序遍历,中序遍历,后序遍历,层次遍历学习总结及完整C/C++代码
伪代码阐述 先序遍历 先序遍历:先访问根节点, 然后深入左子树,直到不能深入时再深入右子树 由定义可得递归式 void travPre_R(BinNodePosi* x,VISIT& visi ...
- 二叉树先序遍历、中序遍历、后序遍历 递归和非递归算法
一.二叉树先序遍历 (1)递归算法 // 递归先序遍历 public static void recursionPreorderTraversal(TreeNode root) {if (root ! ...
- 二叉树——中序遍历(递归/非递归)
中序遍历,即遍历顺序为:左节点.根节点.右节点. 二叉树节点: public class Node {public Node left;public Node right;public int val ...
- 二叉树中序遍历线索化 C++ 递归实现
二叉树中序遍历线索化 中序遍历有一个特点,只要不是叶子节点,遍历的时候左孩子一定是当前节点的上一个访问节点:右孩子一定是当前节点的下一个访问节点. 如果把叶子节点的左右孩子都利用起来,把空的左孩子做成 ...
- 二叉树中序遍历 (C语言实现)
在计算机科学中,树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构.二叉树是每个节点最多有两个子树的有序树.通常子树被称作"左子树"(l ...
- 后序遍历的非递归算法python_二叉树后序遍历(递归与非递归)算法C语言实现...
二叉树后序遍历的实现思想是:从根节点出发,依次遍历各节点的左右子树,直到当前节点左右子树遍历完成后,才访问该节点元素. 图 1 二叉树 如图 1 中,对此二叉树进行后序遍历的操作过程为: 从根节点 1 ...
- leetcode算法题--二叉树中序遍历迭代法
原题链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 二叉树中序遍历迭代法,栈实现 vector<int> ...
最新文章
- p20华为云电脑白屏_永别了电脑,华为大举动:华为云电脑,重新定义个人电脑...
- SAP PM 初级系列25 - 维修工单与采购单据之间LINK?
- unique--求集合的单值元素
- Spring Boot Elasticsearch 入门
- .net你不行——是你的父亲把你封装的太死,还是你的子孙们太懒,未把你发扬光大。...
- java解密方法,java加密,解密方法
- CentOS 7 MySql 解压版安装配置
- mysql boost 5.7.21_mysql 5.7.21 安装配置方法图文教程(window)
- springboot 文件服务器_spring boot还不了解?一份spring boot实战文档送给你
- 12306抢票脚本 python_春运抢票靠加速包?试试这个 Python 开源项目吧
- 通往Java架构师之路
- java 扫雷 实验报告_java实现简单扫雷
- 阿阳网客:steam搬砖项目超完整版实操分享
- eBay以2.4亿美元收购移动支付服务商Zong
- 镭速快答:网页端无法连接镭速,提示未启动怎么办?
- android 仿微信demo————微信发现界面实现
- 解决Pytorch转onnx错误:Only tuples, lists and Variables are supported as JIT inputs/outputs!
- 1425:【例题4】加工生产调度
- 聚类评估算法-轮廓系数(Silhouette Coefficient )
- excel 去重复值
热门文章
- unittest单元测试框架之unittest案例(二)
- [福大软工] W班 总成绩排行榜
- 201521123091 《Java程序设计》第3周学习总结
- bzoj 2190: [SDOI2008]仪仗队 线性欧拉函数
- iOS 合并.a文件,制作通用静态库
- 软件测试技术---黑盒测试
- FireDAC 下的 Sqlite [7] - 备份、优化、事务(Transaction)
- 网络协议 9 - TCP协议(下):聪明反被聪明误
- 连接MySQL的10060错误:Can't connect to MySQL server on '*.*.*.*'(10060)
- elasticsearch 运行原理