예제 #1
0
        public static void Main(String[] args)
        {
            //	int value;
            ComparisonDelegate delegateMy = objComparison;
            Tree theTree = new Tree(delegateMy);

            //создание дерева, вставка узлов
            theTree.insert(50, 1.5);
            theTree.insert(25, 1.2);
            theTree.insert(75, 1.7);
            theTree.insert(12, 1.5);
            theTree.insert(37, 1.2);
            theTree.insert(43, 1.7);
            theTree.insert(30, 1.5);
            theTree.insert(33, 1.2);
            theTree.insert(87, 1.7);
            theTree.insert(93, 1.5);
            theTree.insert(97, 1.5);


            theTree.displayTree();
            theTree.SaveAsBinary();
            theTree.SaveAsXML();

            Tree obj = new Tree(); obj.OpenFromBinary();

            obj.displayTree();
            obj.OpenFromXML();
            obj.displayTree();
            Console.ReadKey();
        }
예제 #2
0
        public void delegates_can_be_used_as_types()
        {
            var compare1 = new ComparisonDelegate(StringComparators.CompareLength);

            compare1("gio", "leo").Should().Be(true);

            var compare2 = new ComparisonDelegate(StringComparators.CompareContent);

            compare2("gio", "leo").Should().Be(false);
        }
예제 #3
0
        public bool Check(IEnumerable <string> s1, IEnumerable <string> s2, ComparisonDelegate compare)
        {
            if (s1.Count() != s2.Count())
            {
                return(false);
            }

            var pairs = s1.Zip(s2, (item1, item2) => new Tuple <string, string>(item1, item2));

            return(pairs.All(p => compare(p.Item1, p.Item2)));
        }
예제 #4
0
        /// <summary>
        /// Finds the element that satisfies the comparison delegate.
        /// </summary>
        /// <param name="d">Comparison delegate.</param>
        /// <param name="w">Parameter passed to delegate for comparison.</param>
        /// <returns>Returns the found element or Default if not found.</returns>
        /// throws ThreadInterruptedException.
        public T FindFirstOccurrence(ComparisonDelegate d, object w)
        {
            int k; T v = Default;

            AccessLock.WaitOne();
            try {
                k = Head;
                while (k != Tail)
                {
                    if (d(ContainerList[k], w))
                    {
                        v = ContainerList[k];
                        break;
                    }
                    ++k;
                    k %= MaxCapacity;
                }
            } finally {
                AccessLock.ReleaseMutex();
            }
            return(v);
        }
예제 #5
0
 public Tree(ComparisonDelegate del)
 {
     root = null; this.del = del;
 }