Ejemplo n.º 1
0
    // 재귀함수 이용 - 트리 내용 출력
    void PrintTree <T>(D05_TreeNode <T> root)
    {
        Debug.Log(root.Data);                   // 루트 노드의 내용을 출력한다

        foreach (var child in root.Children)    // 노드의 각 자식마다
        {
            PrintTree <T>(child);               // 이 작업(출력 후 자식 탐색)을 반복한다.
        }
    }
Ejemplo n.º 2
0
    public override void TestCode02()
    {
        code2 = "트리 구현 연습 - 트리 높이 구하기";

        if (onStartTreeClear && root != null)
        {
            root = null;
        }
        MakeTree();
        Debug.Log("트리 높이 : " + GetHeight(root));
    }
Ejemplo n.º 3
0
    public override void TestCode01()
    {
        code1 = "트리 구현 연습 - 게임 개발팀 구조 묘사";

        if (onStartTreeClear && root != null)
        {
            root = null;
        }
        MakeTree();
        PrintTree <string>(root);
    }
Ejemplo n.º 4
0
    // 재귀함수 이용 2 - 트리 높이 구하기
    int GetHeight <T>(D05_TreeNode <T> root)
    {
        int childHeight = 0;

        if (root.Children.Count == 0)
        {
            return(0);
        }

        foreach (var child in root.Children)
        {
            childHeight = Mathf.Max(childHeight, GetHeight(child));
        }

        return(childHeight + 1);
    }
Ejemplo n.º 5
0
    void MakeTree()
    {
        if (root != null)
        {
            return;
        }

        root = new D05_TreeNode <string>()
        {
            Data = "개발실"
        };

        {
            D05_TreeNode <string> node = new D05_TreeNode <string>()
            {
                Data = "디자인팀"
            };
            root.Children.Add(node);
            node.Children.Add(new D05_TreeNode <string>()
            {
                Data = "전투"
            });
            node.Children.Add(new D05_TreeNode <string>()
            {
                Data = "경제"
            });
            node.Children.Add(new D05_TreeNode <string>()
            {
                Data = "스토리"
            });
        }

        {
            D05_TreeNode <string> node = new D05_TreeNode <string>()
            {
                Data = "프로그래밍팀"
            };
            root.Children.Add(node);
            node.Children.Add(new D05_TreeNode <string>()
            {
                Data = "서버"
            });
            node.Children.Add(new D05_TreeNode <string>()
            {
                Data = "클라이언트"
            });
            {
                D05_TreeNode <string> _node = new D05_TreeNode <string>()
                {
                    Data = "엔진"
                };
                node.Children.Add(_node);
                _node.Children.Add(new D05_TreeNode <string>()
                {
                    Data = "유니티"
                });
                _node.Children.Add(new D05_TreeNode <string>()
                {
                    Data = "언리얼"
                });
            }
        }

        {
            D05_TreeNode <string> node = new D05_TreeNode <string>()
            {
                Data = "아트팀"
            };
            root.Children.Add(node);
            node.Children.Add(new D05_TreeNode <string>()
            {
                Data = "배경"
            });
            node.Children.Add(new D05_TreeNode <string>()
            {
                Data = "캐릭터"
            });
        }
    }