zoukankan      html  css  js  c++  java
  • js实现输入某串数字,构建完全二叉树,并判断是否为二叉搜索树

    思路:若为二叉搜索树,则中序遍历为递增的

    let arr = [15,8,16,6,10];
    let pindex = [];
    function Node(){
    this.root = null;
    this.left = null;
    this.right = null;
    }

    //构建完全二叉树
    function CCtree(node,i){
    let leftIndex = 2*i+1;
    let rightIndex = 2*i+2;

    if(leftIndex < arr.length){
    let newNode = new Node();
    newNode.root = arr[leftIndex];
    node.left = newNode;
    CCtree(newNode,leftIndex);
    }
    if(rightIndex < arr.length){
    let newNode = new Node();
    newNode.root = arr[rightIndex];
    node.right = newNode;
    CCtree(newNode, rightIndex);
    }
    }

    //中序遍历

    function VinIndex(node){
    if(node.left){
    if(node.left.left){
    VinIndex(node.left);
    }
    else{
    pindex.push(node.left.root);
    }
    }
    pindex.push(node.root);
    if(node.right){
    if(node.right.left){
    VinIndex(node.right)
    }
    else{
    pindex.push(node.right.root);
    }
    }
    }
    var node = new Node();
    node.root = arr[0];
    CCtree(node, 0); //索引i是从0开始构建
    VinIndex(node);
    for(let i=0;i<pindex.length-1;i++){
    for(let j=i+1;j<pindex.length;j++){
    if(pindex[i]>pindex[j]){
    i=pindex.length-1;
    j=pindex.length;
    console.log("False")
    }
    if(i===pindex.length-2 && j===pindex.length-1){
    console.log("True")
    }
    }
    }

  • 相关阅读:
    Java IO总结
    Tomcat处理一个HTTP请求的过程
    Tomcat的web项目部署方式
    Tomcat性能调优
    jquery基础知识汇总
    Javascript中的正则表达式
    HTTP首部
    HTTPS
    Javascript中关于cookie的那些事儿
    HTTP请求方法详解
  • 原文地址:https://www.cnblogs.com/lzcblog/p/10636122.html
Copyright © 2011-2022 走看看