zoukankan      html  css  js  c++  java
  • 二叉树的添加与查找

    添加:

    添加的时候可以用数组,循环添加,我是一步一步测试方便,才一个一个添加。

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6 <script>
     7 var root=null;
     8 function bt_add(node,n){
     9     if(node==null){
    10         alert('没有根节点把'+n+'当成根节点');
    11         node={
    12             value:n,
    13             l:null,
    14             r:null
    15         };
    16     }else{
    17         if(node.value==n){
    18             return;
    19         }else if(node.value<n){
    20             alert('试图往右走');
    21             node.r=bt_add(node.r,n);
    22         }else{
    23             alert('试图往左走');
    24             node.l=bt_add(node.l,n);
    25         }
    26     }
    27     return node;
    28 }
    29 root=bt_add(root,50);
    30 root=bt_add(root,35);
    31 root=bt_add(root,60);
    32 root=bt_add(root,21);
    33 root=bt_add(root,45);
    34 root=bt_add(root,55);
    35 root=bt_add(root,70);
    36 </script>
    37 </head>
    38 <body>
    39     
    40 </body>
    41 </html>

    查找:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6 <script>
     7 var root=null;
     8 function bt_add(node,n){
     9     if(node==null){
    10         node={
    11             value:n,
    12             l:null,
    13             r:null
    14         };
    15     }else{
    16         if(node.value==n){
    17             return;
    18         }else if(node.value<n){
    19             node.r=bt_add(node.r,n);
    20         }else{
    21             node.l=bt_add(node.l,n);
    22         }
    23     }
    24     return node;
    25 }
    26 function bt_find(node,n){
    27     if(node==null){
    28         return false;
    29     }else{
    30         if(node.value==n){
    31             return true;
    32         }else if(node.value<n){
    33             return bt_find(node.r,n);
    34         }else{
    35             return bt_find(node.l,n);
    36         }
    37     }
    38 }
    39 root=bt_add(root,50);
    40 root=bt_add(root,35);
    41 root=bt_add(root,60);
    42 root=bt_add(root,21);
    43 root=bt_add(root,45);
    44 root=bt_add(root,55);
    45 root=bt_add(root,70);
    46 alert(bt_find(root,5));
    47 </script>
    48 </head>
    49 <body>
    50     
    51 </body>
    52 </html>
  • 相关阅读:
    Linux常用命令大全详解
    C++语言关键字及注解
    求两数的最大公约数
    ICOP完成端口详解
    C/C++常见面试题
    猴子吃桃问题之《C语言经典案例分析》
    DTD
    DTD
    DTD的使用
    Rust
  • 原文地址:https://www.cnblogs.com/yty12345/p/5388975.html
Copyright © 2011-2022 走看看