예제 #1
0
        public List <BinaryTreeNode <T> > FindAll(Predicate <BinaryTreeNode <T> > match,
                                                  IteratorMode searchIteratorMode = IteratorMode.Pre)
        {
            var retNodes = new List <BinaryTreeNode <T> >();

            // 如果此二叉树实例为空树,则返回空列表
            if (IsEmpty)
            {
                return(retNodes);
            }

            retNodes.AddRange(RootNode.GetIterator(searchIteratorMode).Where(node => match(node)));

            return(retNodes);
        }
예제 #2
0
 public BinaryTreeNode <T> FindOne(Predicate <BinaryTreeNode <T> > match,
                                   IteratorMode searchIteratorMode = IteratorMode.Pre)
 {
     // 如果此二叉树实例为空树,则返回空                       否则 获取第一个被匹配的结点
     return(IsEmpty ? null : RootNode.GetIterator(searchIteratorMode).FirstOrDefault(node => match(node)));
 }