二叉树生成

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;

}

}

 

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值