当前位置: 首页>>代码示例>>C#>>正文


C# Tree.Find方法代码示例

本文整理汇总了C#中Tree.Find方法的典型用法代码示例。如果您正苦于以下问题:C# Tree.Find方法的具体用法?C# Tree.Find怎么用?C# Tree.Find使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Tree的用法示例。


在下文中一共展示了Tree.Find方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Run

    void Run()
    {
        Scanner input = new Scanner(Console.In);

        int N = input.NextInt();
        char[] op = new char[N];
        int[] arg = new int[N];
        List<int> keys = new List<int>();

        for (int i = 0; i < N; i++) {
            string s = input.Next();
            op[i] = char.ToUpper(s[0]);
            arg[i] = input.NextInt();

            if (op[i] == 'P')
                keys.Add(arg[i]);

            if (op[i] != 'P' && op[i] != 'G')
                throw new Exception();
        }

        Tree tree = new Tree(keys.ToArray());
        for (int i = 0; i < N; i++) {
            if (op[i] == 'P') {
                tree.Add(arg[i]);
            } else {
                try {
                    tree.Remove(tree.Find(arg[i]));
                } catch (Exception e) {}
            }
        }

        int[] res = tree.ToArray();
        foreach (int i in res)
            Console.WriteLine(i);

        if (res.Length == 0)
            Console.WriteLine("empty");
    }
开发者ID:pandeyiyer,项目名称:acm,代码行数:39,代码来源:A156_wa.cs

示例2: DeleteLeaf_LeftChild

        public void DeleteLeaf_LeftChild()
        {
            var t = new Tree<int>();
            t.Add(23);
            t.Add(20);
            t.Add(25);
            t.Add(24);
            t.Add(33);
            t.Add(10);
            t.Add(7);
            t.Add(8);

            t.Delete(8);

            Assert.AreEqual(23, t.Root.Item);
            Assert.AreEqual(20, t.Root.Left.Item);
            Assert.AreEqual(10, t.Root.Left.Left.Item);
            Assert.AreEqual(7, t.Root.Left.Left.Left.Item);
            Assert.AreEqual(25, t.Root.Right.Item);
            Assert.AreEqual(24, t.Root.Right.Left.Item);
            Assert.AreEqual(33, t.Root.Right.Right.Item);
            Assert.IsNull(t.Find(8));
        }
开发者ID:alwalker,项目名称:DataStructures,代码行数:23,代码来源:Tests.cs

示例3: Crossover

 public static void Crossover(Tree t1, Tree t2)
 {
     Tree tmp1 = t1.Find(Program.RandomGenerator.Next());
     Tree tmp2 = t2.Find(Program.RandomGenerator.Next());
     Swap(tmp1, tmp2);
 }
开发者ID:alxio,项目名称:gen,代码行数:6,代码来源:Tree.cs

示例4: NewMethod

 private static void NewMethod(ConcurrentQueue<Tuple<Map, char>> queue, Tree tree, Map currentMap, KeyValuePair<char, Tuple<Point, int, Direction>> kvp, Map move)
 {
     var moveNode = tree.Find(move);
     if (moveNode == null) {
         tree.AddNeighbor(currentMap, move);
         queue.Enqueue(new Tuple<Map, char>(move, kvp.Key));
         //Console.WriteLine("Queued:\n" + move);
     }
     else ;// tree.AddNeighbor(currentMap, moveNode);
 }
开发者ID:kutagh,项目名称:RushHour,代码行数:10,代码来源:Program.cs

示例5: DeleteNodeWithSingleChild_LeftParentLeftChild

        public void DeleteNodeWithSingleChild_LeftParentLeftChild()
        {
            var t = new Tree<int>();
            t.Add(22);
            t.Add(20);
            t.Add(25);
            t.Add(24);
            t.Add(33);
            t.Add(10);
            t.Add(7);
            t.Add(8);
            t.Add(23);

            t.Delete(24);

            Assert.AreEqual(22, t.Root.Item);
            Assert.AreEqual(20, t.Root.Left.Item);
            Assert.AreEqual(10, t.Root.Left.Left.Item);
            Assert.AreEqual(8, t.Root.Left.Left.Left.Right.Item);
            Assert.AreEqual(25, t.Root.Right.Item);
            Assert.AreEqual(23, t.Root.Right.Left.Item);
            Assert.AreEqual(7, t.Root.Left.Left.Left.Item);
            Assert.AreEqual(33, t.Root.Right.Right.Item);
            Assert.IsNull(t.Find(24));
        }
开发者ID:alwalker,项目名称:DataStructures,代码行数:25,代码来源:Tests.cs

示例6: FindNonExistingKeyReturnsNull

        public void FindNonExistingKeyReturnsNull()
        {
            var t = new Tree<int>();

            t.Add(23);
            t.Add(20);
            t.Add(25);
            t.Add(24);
            t.Add(33);
            t.Add(10);
            t.Add(7);
            t.Add(8);

            var actual = t.Find(101);

            Assert.IsNull(actual);
        }
开发者ID:alwalker,项目名称:DataStructures,代码行数:17,代码来源:Tests.cs

示例7: FindInMiddle

        public void FindInMiddle()
        {
            var t = new Tree<int>();

            t.Add(23);
            t.Add(20);
            t.Add(25);
            t.Add(24);
            t.Add(33);
            t.Add(10);
            t.Add(7);
            t.Add(8);

            var actual = t.Find(10);

            Assert.AreEqual(t.Root.Left.Left, actual);
        }
开发者ID:alwalker,项目名称:DataStructures,代码行数:17,代码来源:Tests.cs

示例8: DeleteNodeWithTwoChildren

        public void DeleteNodeWithTwoChildren()
        {
            var t = new Tree<int>();
            t.Add(22);
            t.Add(20);
            t.Add(25);
            t.Add(24);
            t.Add(33);
            t.Add(10);
            t.Add(7);
            t.Add(8);
            t.Add(23);
            t.Add(35);

            t.Delete(25);

            Assert.AreEqual(22, t.Root.Item);
            Assert.AreEqual(20, t.Root.Left.Item);
            Assert.AreEqual(10, t.Root.Left.Left.Item);
            Assert.AreEqual(8, t.Root.Left.Left.Left.Right.Item);
            Assert.AreEqual(7, t.Root.Left.Left.Left.Item);

            Assert.AreEqual(24, t.Root.Right.Item);
            Assert.AreEqual(23, t.Root.Right.Left.Item);
            Assert.AreEqual(33, t.Root.Right.Right.Item);
            Assert.AreEqual(35, t.Root.Right.Right.Right.Item);

            Assert.IsNull(t.Find(25));
        }
开发者ID:alwalker,项目名称:DataStructures,代码行数:29,代码来源:Tests.cs


注:本文中的Tree.Find方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。