두 갈래 나무 생성

2809 단어
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;

}

}

 

}

}

좋은 웹페이지 즐겨찾기