首页 > 编程语言 >C# BTree PreOrder InOrder PostOrder

C# BTree PreOrder InOrder PostOrder

时间:2024-08-20 20:28:36浏览次数:12  
标签:node PreOrder BTreeNode C# tree BTree Root public Left

namespace ConsoleApp49
{
    internal class Program
    {
        static void Main(string[] args)
        {
            BTreeDemo();
            Console.WriteLine("BTree!");
        }

        static void BTreeDemo()
        {
            BTree<int> tree = new BTree<int>(1);
            tree.Root.Left = new BTreeNode<int>(2);
            tree.Root.Right= new BTreeNode<int>(3);
            tree.Root.Left.Left = new BTreeNode<int>(4);
            tree.Root.Left.Right = new BTreeNode<int>(5);

            Console.WriteLine("PreOrder:");
            tree.PreOrderTraversal(tree.Root);

            Console.WriteLine("InOrder:");
            tree.InOrderTraversal(tree.Root);

            Console.WriteLine("PostOrder:");
            tree.PostOrderTraversal(tree.Root);
        }
    }

    public class BTreeNode<T>
    {
        public T Value { get; set; }
        public BTreeNode<T> Left { get; set; }

        public BTreeNode<T> Right { get; set; }

        public BTreeNode(T value)
        {
            Value = value;
            Left = null;
            Right = null;
        }
    }

    public class BTree<T>
    {
        public BTreeNode<T> Root { get; set; }

        public BTree(T rootValue)
        {
            Root=new BTreeNode<T>(rootValue);
        }

        public void PreOrderTraversal(BTreeNode<T> node)
        {
            if(node!=null)
            {
                Console.WriteLine(node.Value);
                PreOrderTraversal(node.Left);
                PreOrderTraversal(node.Right);
            }
        }

        public void InOrderTraversal(BTreeNode<T> node)
        {
            if(node!=null)
            {
                InOrderTraversal(node.Left);
                Console.WriteLine(node.Value);
                InOrderTraversal(node.Right);
            }
        }

        public void PostOrderTraversal(BTreeNode<T> node)
        {
            if(node!=null)
            {
                PostOrderTraversal(node.Left);
                PostOrderTraversal(node.Right);
                Console.WriteLine(node.Value);
            }
        }
    }
}

 

 

 

 

标签:node,PreOrder,BTreeNode,C#,tree,BTree,Root,public,Left
From: https://www.cnblogs.com/Fred1987/p/18370256

相关文章

  • 【SPIE 出版,最后5天!】第五届信号处理与计算机科学国际学术会议(SPCS 2024,8月24线上)
    第五届信号处理与计算机科学国际学术会议(SPCS2024)将于2024年8月23-25日在中国哈尔滨举行。会议主要围绕信号处理与计算机科学等研究领域展开讨论。会议旨在为从事信号处理与计算机科学研究的专家学者、工程技术人员、技术研发人员提供一个共享科研成果和前沿技术,了解......
  • CoreData 核心指南:Swift 中的数据持久化之道
    标题:CoreData核心指南:Swift中的数据持久化之道引言在Swift开发中,数据持久化是一个不可或缺的部分。CoreData作为Apple官方提供的数据管理框架,为iOS、macOS、watchOS和tvOS应用提供了强大的数据存储解决方案。本文将带领读者深入了解如何在Swift中使用CoreDa......
  • 深入探索 PyTorch:torch.nn.Parameter 与 torch.Tensor 的奥秘
    标题:深入探索PyTorch:torch.nn.Parameter与torch.Tensor的奥秘在深度学习的世界里,PyTorch以其灵活性和易用性成为了众多研究者和开发者的首选框架。然而,即使是经验丰富的PyTorch用户,也可能对torch.nn.Parameter和torch.Tensor之间的区别感到困惑。本文将深入剖析......
  • C语言:递归
    递归简单来说就是函数自己调用自己。特点:一般代码比较简洁,没有出口。例子1:用一个函数计算阶乘#include<stdio.h>//不用递归intfac(intn){ intval=1; for(inti=1;i<=n;i++) { val*=i; } returnval;}//用递归intfac1(intn){ if(n==1) {......
  • attitudes toward coca搭配
    Sorry,therearenomatchingrecords.Youmaywishtodooneofthefollowing:1.Makesurethefrequencylimitsaresetcorrectly(MINFREQandcheckbox)2.Selectalessrestrictivesetofsections(genresortimeperiods)3. Checkthesearchsyntax tow......
  • 为什么K&R风格中Ken用名而Rtichie用姓
    intro在看vim缩进相关的代码中,有些地方的注释特意强调了对于“K&Rstylefunction"相关的内容。例如,在find_decl()函数的注释中。///@file:normal.c//Forfindingalocalvariableandthematchisbeforethe"{"or//insideacomment,continuese......
  • 在 React 项目中 Editable Table 的实现
    在React项目中EditableTable的实现 我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:佳岚可编辑表格在数栈产品中是一种比较常见的表单数据交互方式,一般都支持动态的新增、删......
  • c语言基础------数组指针
    在C语言中,数组指针是一种特殊的指针类型,它指向一个数组。具体来说,数组指针是指向数组首元素的指针,但它与普通指针有所不同,因为它包含了数组的大小信息。下面是关于数组指针的一些基本概念和用法:定义数组指针数组指针可以通过以下方式定义:int(*arrayPtr)[10];//arra......
  • c语言基础--------字符串指针
    在C语言中,字符串指针是一个指向字符类型的指针,通常用于指向字符串的第一个字符。字符串在C语言中通常表示为字符数组,而字符串指针则是用来存储这种字符数组首地址的变量。定义字符串指针字符串指针的定义方式如下:char*stringPtr;这里的char*表示stringPtr是......
  • 2024浙江省信息通信行业职业技能竞赛信息安全测试员竞赛CTF比赛
    浙江省信息通信行业职业技能竞赛信息安全测试员竞赛CTF比赛MISC部分Author:Ns100kUpFrom:极安云科-服务中心Data:2024/08/07Copyright:本内容版权归属极安云科,未经授权不得以任何形式复制、转载、摘编和使用。培训、环境、资料、考证公众号:Geek极安云科网络安全群:62403......