コード例 #1
0
ファイル: Program.cs プロジェクト: jonator/ACM-Practice
            public void AddNode(string name, string[] isclass)
            {
                if (isclass.Length == 0)
                {
                    names.Add(name);
                    names.Sort();
                }
                else
                {
                    string[] newclasses = new string[isclass.Length - 1];
                    Array.ConstrainedCopy(isclass, 1, newclasses, 0, isclass.Length - 1);
                    switch (isclass[0])
                    {
                    case "upper":
                        if (Upper == null)
                        {
                            Upper = new CasteNode();
                        }
                        Upper.AddNode(name, newclasses);
                        break;

                    case "middle":
                        if (Middle == null)
                        {
                            Middle = new CasteNode();
                        }
                        Middle.AddNode(name, newclasses);
                        break;

                    case "lower":
                        if (Lower == null)
                        {
                            Lower = new CasteNode();
                        }
                        Lower.AddNode(name, newclasses);
                        break;
                    }
                }
            }
コード例 #2
0
ファイル: Program.cs プロジェクト: jonator/ACM-Practice
        static void Main(string[] args)
        {
            int cases = Convert.ToInt32(Console.ReadLine());

            while (cases > 0)
            {
                int       familymemcount = Convert.ToInt32(Console.ReadLine());
                CasteNode familyRoot     = new CasteNode();
                while (familymemcount > 0)
                {
                    string[] line      = Console.ReadLine().Split(' ');
                    string   name      = line[0].Trim(':');
                    string[] heirarchy = line[1].Split('-');
                    familyRoot.AddNode(name, heirarchy);
                    familymemcount--;
                }
                StringBuilder sb = new StringBuilder();
                familyRoot.InorderPrint(sb);
                Console.Write(sb.ToString());
                Console.WriteLine("==============================");
                cases--;
            }
            Console.ReadLine();
        }