二叉树的生成

发布时间:2020-08-01 10:39:11 作者:fyifei05580558
来源:网络 阅读:362
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Generic;
namespace ConsoleApplication4
{
    class Program
{
        static void Main(string[] args)
{
            personalInfo p1 = new personalInfo("1", "1");
            personalInfo p2 = new personalInfo("2", "2");
            personalInfo p3 = new personalInfo("3", "3");
            personalInfo p4 = new personalInfo("", "");
            personalInfo p31 = new personalInfo("31", "31");
            personalInfo p32 = new personalInfo("32", "32");
            personalInfo p33 = new personalInfo("", "");
            personalInfo p321 = new personalInfo("", "");
            personalInfo p311 = new personalInfo("", "");
            personalInfo p21 = new personalInfo("", "");
            personalInfo p11 = new personalInfo("11", "11");
            personalInfo p12 = new personalInfo("", "");
            personalInfo p111 = new personalInfo("", "");
            List<personalInfo> list = new System.Collections.Generic.List<personalInfo>();
            list.AddRange(new personalInfo[]{p1,p2,p3,p4,p31,p32,p33,p321,p311,p21,p11,p12,p111});
            JiaPu j = new JiaPu(list);
            note phead = null;
            int index = j.CreateTree(ref phead, 0, 13);
}
        public struct personalInfo
{
            public personalInfo(string name, string Id)
{
                this.name = name;
                this.Id = Id;
}
            public string name;
            public string Id; // Id is empty or null, that means, no the person.
}
        public class note
{
            public personalInfo data;
            public note lChild, rChild;
}
        public class JiaPu
{
            List<personalInfo> persons;
           // int index = 0;
            public JiaPu(List<personalInfo> persons)
{
                this.persons = persons;
}
            public int CreateTree(ref note nNode,int index, int length)
{
                if(index>=length)
{
                    nNode= null;
                    return index;
}
                if (string.IsNullOrEmpty(persons[index].Id))
{
                    nNode = null;
                    return index;
}
                nNode = new note();
nNode.data = persons[index];

                index = CreateTree(ref nNode.lChild, ++index, length);

                index = CreateTree(ref nNode.rChild, ++index, length);
                return index;
}
}

}
}


推荐阅读:
  1. 堆、二叉树的应用
  2. 二叉树的性质是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

二叉树 树的

上一篇:在vue-cli3中用预渲染遇到一些问题

下一篇:C语言如何实现随机发牌

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》