首页 > 编程语言 >算法-二叉树的构造

算法-二叉树的构造

时间:2023-04-16 12:56:49浏览次数:42  
标签:Node head set get 构造 算法 二叉树 cStr public

namespace Binary;

public class BinaryTree{
    public Node<char> Head{
             get;
             private set;
    }
    private string cStr{get;set;}
    public BinaryTree(string constructStr)
    {
        this.cStr = constructStr;
        this.Head = new Node<char>(constructStr[0]);
        BuildeTree(Head,0);
    }
    private void BuildeTree(Node<char> head,int index){
        if(head == null) return;
        var left = 2*index + 1;
        var right = 2*index + 2;
        if(left < cStr.Length) 
        {
       if(cStr[left] != '#')
       {
        head.Left = new Node<char>(cStr[left]);
        BuildeTree(head.Left,left);
       }
        }
        if(right < cStr.Length) 
        {
            head.Right = new Node<char>(cStr[right]);
            BuildeTree(head.Right,right);
        }
    }


   public class Node<T>{
        public Node<T>? Left{get;set;}
        public Node<T>? Right{get;set;}
        public T Val{get;set;}
        public Node(T val)
        {
            this.Val = val;
            Left = null;
            Right = null;
        }
    }
}

 

 

标签:Node,head,set,get,构造,算法,二叉树,cStr,public
From: https://www.cnblogs.com/Insist-Y/p/17323108.html

相关文章

  • 【LBLD】带权重的随机选择算法
    带权重的随机选择算法528.按权重随机选择不使用二分法:classSolution{private:vector<int>preSum;intN=0;public:Solution(vector<int>&w){srand(time(0));preSum.push_back(0);for(inti=1;i<=w.size();i++){......
  • Java中常用排序算法及示例-冒泡排序、希尔排序、选择排序、插入排序、合并排序、基数
    场景Java中需要对数据进行排序处理,常用的排序算法以及示例进行归纳整理。注:实现1、冒泡排序冒泡排序法又称为交换排序法,原理是从第一个元素开始,比较相邻元素的大小,若大小顺序有误,则对调后再进行下一个元素的比较。如此扫描一次之后就可以确保最后一个元素位于正确的顺序,接着逐步进......
  • Java中常用算法及示例-分治、迭代、递归、递推、动态规划、回溯、穷举、贪心
    场景1、分治算法的基本思想是将一个计算复杂的问题分成规模较小、计算简单的小问题求解,然后综合各个小问题,得到最终答案。2、穷举(又称枚举)算法的基本思想是从所有可能的情况中搜索正确的答案。3、迭代法(IterativeMethod)无法使用公式一次求解,而需要使用重复结构(即循环)重复执......
  • 算法-回文链表-24
    /***Definitionforsingly-linkedlist.*publicclassListNode{*publicintval;*publicListNodenext;*publicListNode(intx){val=x;}*}*/publicclassSolution{publicListNodeReverseList(ListNodehead){i......
  • 期望最大化算法(EM)简介
    ExpectationMaximization,EM算法是带有隐变量的概率模型参数的极大似然估计(MLE为给定参数,观测数据出现/生成的可能性)。如下为《统计机器学习》中对应EM算法的笔记。观测数据Y和隐变量X合称,完全数据观测数据Y称,不完全数据E步:(期望步)求Q函数(上一轮参数固定,模型参数为变量的......
  • 加密算法
    #include<stdio.h>#include<stdlib.h>#include<stdint.h>#include<string.h>#include<openssl/rsa.h>#include<openssl/err.h>#include<openssl/objects.h>#pragmacomment(lib,"libssl.lib")#pragmac......
  • 二叉树遍历算法分析
    二叉树遍历算法分析前/中/后序遍历算法可以发现这三种遍历算法只有一行代码,也就是输出结点数据域的位置不同前序遍历是先输出数据域再递归到左孩子和右孩子中序遍历是先递归到左孩子等返回的时候输出数据域再递归到右孩子后序遍历是指先递归到左孩子,然后递归到右孩子,最后......
  • COMS3200 算法解答
    COMS3200Assignment12023S1100totalmarks,25%overallcoursemarkDue:15:0019April20231Preface1.1NotesThisdocumentissubjecttochangeforthepurposesofclarification.Changesmadesincetheoriginalreleasewillbehighlightedinred.Please......
  • 归并排序算法
    一、归并排序分治思想。  求解一个比较复杂的问题时我们通常都会把复杂的问题分解为几个简单的步骤逐一解决后对所形成的解进行处理得到最终解。分治排序算法就是利用这个思想。把一个给定数组进行拆分成最小的有顺序的单元,然后对最小单元进行排序组合成新数组的过程。二、归......
  • 利用AntDesign中a-tree和checkbox构造组织单位人员树选择组件
    业务效果图核心代码<template><divclass="select-container"><a-modalv-model:visible="visible"@ok="handleOk"@cancel="handleCancel"width="1500px"><template#title>......