二叉树概念

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实现创建二叉树+先序遍历相关推荐

  1. 二叉树 —— 创建二叉树 先序遍历 、中序遍历、后序遍历(递归方式、非递归方式)

    #include<stdio.h> #include<malloc.h> #include<stdlib.h> typedef char DataType; #de ...

  2. 一个关于二叉树的创建、先序遍历、中序遍历、后序遍历、求叶子节点的完整函数的c语言完整程序。

    #include<stdlib.h> #include<stdio.h>typedef struct bitnode{int date;struct bitnode * lch ...

  3. 二叉树先序遍历,中序遍历,后序遍历,层次遍历学习总结及完整C/C++代码

    伪代码阐述 先序遍历 先序遍历:先访问根节点, 然后深入左子树,直到不能深入时再深入右子树 由定义可得递归式 void travPre_R(BinNodePosi* x,VISIT& visi ...

  4. 二叉树先序遍历、中序遍历、后序遍历 递归和非递归算法

    一.二叉树先序遍历 (1)递归算法 // 递归先序遍历 public static void recursionPreorderTraversal(TreeNode root) {if (root ! ...

  5. 二叉树——中序遍历(递归/非递归)

    中序遍历,即遍历顺序为:左节点.根节点.右节点. 二叉树节点: public class Node {public Node left;public Node right;public int val ...

  6. 二叉树中序遍历线索化 C++ 递归实现

    二叉树中序遍历线索化 中序遍历有一个特点,只要不是叶子节点,遍历的时候左孩子一定是当前节点的上一个访问节点:右孩子一定是当前节点的下一个访问节点. 如果把叶子节点的左右孩子都利用起来,把空的左孩子做成 ...

  7. 二叉树中序遍历 (C语言实现)

    在计算机科学中,树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构.二叉树是每个节点最多有两个子树的有序树.通常子树被称作"左子树"(l ...

  8. 后序遍历的非递归算法python_二叉树后序遍历(递归与非递归)算法C语言实现...

    二叉树后序遍历的实现思想是:从根节点出发,依次遍历各节点的左右子树,直到当前节点左右子树遍历完成后,才访问该节点元素. 图 1 二叉树 如图 1 中,对此二叉树进行后序遍历的操作过程为: 从根节点 1 ...

  9. leetcode算法题--二叉树中序遍历迭代法

    原题链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/ 二叉树中序遍历迭代法,栈实现 vector<int> ...

最新文章

  1. p20华为云电脑白屏_永别了电脑,华为大举动:华为云电脑,重新定义个人电脑...
  2. SAP PM 初级系列25 - 维修工单与采购单据之间LINK?
  3. unique--求集合的单值元素
  4. Spring Boot Elasticsearch 入门
  5. .net你不行——是你的父亲把你封装的太死,还是你的子孙们太懒,未把你发扬光大。...
  6. java解密方法,java加密,解密方法
  7. CentOS 7 MySql 解压版安装配置
  8. mysql boost 5.7.21_mysql 5.7.21 安装配置方法图文教程(window)
  9. springboot 文件服务器_spring boot还不了解?一份spring boot实战文档送给你
  10. 12306抢票脚本 python_春运抢票靠加速包?试试这个 Python 开源项目吧
  11. 通往Java架构师之路
  12. java 扫雷 实验报告_java实现简单扫雷
  13. 阿阳网客:steam搬砖项目超完整版实操分享
  14. eBay以2.4亿美元收购移动支付服务商Zong
  15. 镭速快答:网页端无法连接镭速,提示未启动怎么办?
  16. android 仿微信demo————微信发现界面实现
  17. 解决Pytorch转onnx错误:Only tuples, lists and Variables are supported as JIT inputs/outputs!
  18. 1425:【例题4】加工生产调度
  19. 聚类评估算法-轮廓系数(Silhouette Coefficient )
  20. excel 去重复值

热门文章

  1. unittest单元测试框架之unittest案例(二)
  2. [福大软工] W班 总成绩排行榜
  3. 201521123091 《Java程序设计》第3周学习总结
  4. bzoj 2190: [SDOI2008]仪仗队 线性欧拉函数
  5. iOS 合并.a文件,制作通用静态库
  6. 软件测试技术---黑盒测试
  7. FireDAC 下的 Sqlite [7] - 备份、优化、事务(Transaction)
  8. 网络协议 9 - TCP协议(下):聪明反被聪明误
  9. 连接MySQL的10060错误:Can't connect to MySQL server on '*.*.*.*'(10060)
  10. elasticsearch 运行原理