zoukankan      html  css  js  c++  java
  • js 实现二叉树

    二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree),右边的总是大于左边的!二叉树的每个结点至多只有二棵子树(不存在出度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。

     1 function Node(num)
     2 {
     3     this.num   = num;
     4     this.count = 1;
     5     this.pLeft = null;
     6     this.pRight = null;
     7 }
     8 
     9 
    10 function createNode(value)
    11 {
    12     var pNode      = new Node(value);
    13     pNode.num    = value;
    14     pNode.count  = 1;
    15     pNode.pLeft  = null;
    16     pNode.pRight = null;
    17     return pNode;
    18 }
    19 
    20 
    21 function  addNode(value, pNode)
    22 {
    23     if (pNode == null){
    24         return createNode(value);
    25     }
    26     if (value == pNode.num){
    27         pNode.count++;
    28         return pNode;
    29     }
    30     if (value < pNode.num){
    31         if (pNode.pLeft == null){
    32             pNode.pLeft = createNode(value);
    33             return pNode.pLeft;
    34         }else{
    35             return addNode(value, pNode.pLeft);
    36         }
    37     }else{
    38         if (pNode.pRight == null){
    39             pNode.pRight = createNode(value);
    40             return pNode.pRight;
    41         }else{
    42             return addNode(value, pNode.pRight);
    43         }
    44     }
    45 }
    46 
    47 var list = [10,8,15,2,14,16,20,7,5,13,60,34,1,10];
    48 var pRoot = null;
    49 var lent = list.length;
    50 
    51 for(var i=0; i<lent; i++){
    52     if (pRoot==null){
    53         pRoot = createNode(list[i]);
    54     }else{
    55         addNode(list[i], pRoot);
    56     }
    57 }
    58 console.info(pRoot);

    结果如图

    用户js、php这些语言玩数据结构比C语言 好玩太多了!!!

  • 相关阅读:
    体验cygwin纪实
    播布客视频PIT专用播放器MBOO2015
    rpm基本命令参考
    rhel7.x配置本地yum
    mtr网络连通性测试
    Oracle下载汇聚
    Spring Cloud心跳监测
    Hystrix的用法
    Redis系列十:缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级
    dubbo异步调用三种方式
  • 原文地址:https://www.cnblogs.com/fengwei/p/3163226.html
Copyright © 2011-2022 走看看