• 大小: 41KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-04
  • 语言: C#
  • 标签: C#  

资源简介

一个用C#写的简单的二叉树,可以创建、前序遍历、中序遍历、后续遍历。Windows 窗体应用程序。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BTree1
{
    class BinaryTree
    {
        //成员变量
        private Node _head; //头指针
        private string cStr; //用于构造二叉树的字符串
        private string preResult midResult posResult;//遍历结果
        public Node Head //头指针
        {
            get { return _head; }
        }
        //构造方法
        public BinaryTree(string constructStr)
        {
            cStr = constructStr;
            _head = new Node(cStr[0]); //添加头结点
            Add(_head 0); //给头结点添加孩子结点
            preResult = ““;
            midResult = ““;
            posResult = ““;
        }
        private void Add(Node parent int index)
        {
            int leftIndex = 2 * index + 1; //计算左孩子索引
            if (leftIndex < cStr.Length) //如果索引没超过字符串长度
            {
                if (cStr[leftIndex] != ‘#‘) //‘#‘表示空结点
                {
                    //添加左孩子
                    parent.Left = new Node(cStr[leftIndex]);
                    //递归调用Add方法给左孩子添加孩子节点
                    Add(parent.Left leftIndex);
                }
            }
            int rightIndex = 2 * index + 2;
            if (rightIndex < cStr.Length)
            {
                if (cStr[rightIndex] != ‘#‘)
                {
                    //添加右孩子
                    parent.Right = new Node(cStr[rightIndex]);
                    //递归调用Add方法给右孩子添加孩子节点
                    Add(parent.Right rightIndex);
                }
            }
        }
        public string PreOrder(Node node) //先序遍历
        {
            if (node != null)
            {
                preResult += node.ToString(); //打印字符
                PreOrder(node.Left); //递归
                PreOrder(node.Right); //递归
            }
            return preResult;
        }
        public string MidOrder(Node node) //中序遍历
        {
            if (node != null)
            {
                MidOrder(node.Left); //递归
                midResult += node.ToString(); //打印字符
                MidOrder(node.Right); //递归
            }
            return midResult;
        }
        public string AfterOrder(Node node) //后继遍历
        {
            if (node != null)
            {
                AfterOrder(node.Left); //递归
                AfterOrder(node.Right); //递归
                posResult += node.ToString(); //打印字符
            }
            return posResult;
        }
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11264  2011-04-21 13:14  BTree1\BTree1\bin\Debug\BTree1.exe

     文件      34304  2011-04-21 13:14  BTree1\BTree1\bin\Debug\BTree1.pdb

     文件      14328  2011-04-21 13:16  BTree1\BTree1\bin\Debug\BTree1.vshost.exe

     文件       2792  2011-04-21 12:53  BTree1\BTree1\BinaryTree.cs

     文件       3799  2011-04-20 23:27  BTree1\BTree1\BTree1.csproj

     文件       1162  2011-04-21 12:59  BTree1\BTree1\Form1.cs

     文件       6126  2011-04-21 12:59  BTree1\BTree1\Form1.Designer.cs

     文件       5814  2011-04-21 12:59  BTree1\BTree1\Form1.resx

     文件        856  2011-04-21 13:14  BTree1\BTree1\Node.cs

     文件        893  2011-04-21 13:16  BTree1\BTree1\obj\Debug\BTree1.csproj.FileListAbsolute.txt

     文件        847  2011-04-21 12:59  BTree1\BTree1\obj\Debug\BTree1.csproj.GenerateResource.Cache

     文件      11264  2011-04-21 13:14  BTree1\BTree1\obj\Debug\BTree1.exe

     文件        180  2011-04-21 12:59  BTree1\BTree1\obj\Debug\BTree1.Form1.resources

     文件      34304  2011-04-21 13:14  BTree1\BTree1\obj\Debug\BTree1.pdb

     文件        180  2011-04-20 23:30  BTree1\BTree1\obj\Debug\BTree1.Properties.Resources.resources

     文件        487  2011-04-20 21:28  BTree1\BTree1\Program.cs

     文件       1344  2011-04-20 21:28  BTree1\BTree1\Properties\AssemblyInfo.cs

     文件       2862  2011-04-20 21:28  BTree1\BTree1\Properties\Resources.Designer.cs

     文件       5612  2011-04-20 21:28  BTree1\BTree1\Properties\Resources.resx

     文件       1091  2011-04-20 21:28  BTree1\BTree1\Properties\Settings.Designer.cs

     文件        249  2011-04-20 21:28  BTree1\BTree1\Properties\Settings.settings

     文件        908  2011-04-20 21:28  BTree1\BTree1.sln

    ..A..H.     17920  2011-04-21 18:59  BTree1\BTree1.suo

     目录          0  2011-04-20 21:35  BTree1\BTree1\obj\Debug\Refactor

     目录          0  2011-04-20 21:28  BTree1\BTree1\obj\Debug\TempPE

     目录          0  2011-04-21 12:53  BTree1\BTree1\bin\Debug

     目录          0  2011-04-21 13:14  BTree1\BTree1\obj\Debug

     目录          0  2011-04-20 23:25  BTree1\BTree1\bin

     目录          0  2011-04-20 21:28  BTree1\BTree1\obj

     目录          0  2011-04-20 21:28  BTree1\BTree1\Properties

............此处省略5个文件信息

评论

共有 条评论