public void Test()
        {
            nAryTree sample = new nAryTree();

            sample = sample.makeSampleTree(0);
            sample.displayTreePreOrder();
        }
            public nAryTree makeSampleTree(int key)
            {
                nAryTree myTree;

                if (!visited[key])
                {
                    visited[key] = true;
                    myTree       = new nAryTree(key);
                    if (myDict.ContainsKey(myTree.Value))
                    {
                        if (myDict[myTree.Value] == null)
                        {
                            myTree.decendents = null;
                        }
                        else
                        {
                            myTree.decendents = new nAryTree[myDict[myTree.Value].Length];
                            for (int i = 0; i < myDict[myTree.Value].Length; i++)
                            {
                                myTree.decendents[i] = makeSampleTree(myDict[myTree.Value][i]);
                                if (1 == 0 && myTree.decendents[i].parents.Length < 2)
                                {
                                    if (myTree.decendents[i].parents[0] == null)
                                    {
                                        myTree.decendents[i].parents[0] = myTree;
                                    }
                                    else
                                    {
                                        myTree.decendents[i].parents[1] = myTree;
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    //DFS to search
                    myTree = FetchNodeFromTree(key);
                }
                return(myTree);
            }