コード例 #1
0
        public TreeNodePath CopyAndAddToPath(int value)
        {
            TreeNodePath result = new TreeNodePath(this);

            result.AddToPath(value);
            return(result);
        }
コード例 #2
0
        public TreeNodePath CopyAndSwapEndForSibling(int siblingIndex)
        {
            TreeNodePath path = this.CopyAndRemoveEnd();

            path.AddToPath(siblingIndex);
            return(path);
        }
コード例 #3
0
ファイル: TreeIter.cs プロジェクト: ajbadaj/AJut
        private TreeEvalItem <TTreeNode> GetLastLeaf(TTreeNode node, int currentDepth, TreeNodePath path)
        {
            IList <TTreeNode> children = m_traversalParameters.GetChildrenMethod(node).ToList();

            if (children.Count == 0)
            {
                return(new TreeEvalItem <TTreeNode>(node, path));
            }

            int lastIndex = children.Count - 1;

            path.AddToPath(lastIndex);
            return(GetLastLeaf(children[lastIndex], currentDepth + 1, path));
        }