示例#1
0
        //Поиск любого слова с максимальным числом вхождений в текст, не превышающим заданное значение
        public string WordLessThen(int x)
        {
            var max  = new CntString("a", 1);
            var root = CountWords(text);
            var q    = new Queue <TreeNode <CntString> >();

            q.Enqueue(root);
            while (q.Count > 0)
            {
                var a = q.Dequeue();
                if (a.data.count <= x && a.data.count >= max.count)
                {
                    max = a.data;
                }
                if (a.left != null)
                {
                    q.Enqueue(a.left);
                }
                if (a.right != null)
                {
                    q.Enqueue(a.right);
                }
            }
            return(max.word);
        }
示例#2
0
        //Поиск любого слова с минимальным числом вхождений в текст, не меньшим заданного значения
        public string WordMoreThen(int x)
        {
            var min  = new CntString("a", int.MaxValue);
            var root = CountWords(text);
            var q    = new Queue <TreeNode <CntString> >();

            q.Enqueue(root);
            while (q.Count > 0)
            {
                var a = q.Dequeue();
                if (a.data.count >= x && a.data.count < min.count)
                {
                    min = a.data;
                }
                if (a.left != null)
                {
                    q.Enqueue(a.left);
                }
                if (a.right != null)
                {
                    q.Enqueue(a.right);
                }
            }
            return(min.word);
        }