//Поиск любого слова с максимальным числом вхождений в текст, не превышающим заданное значение 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); }
//Поиск любого слова с минимальным числом вхождений в текст, не меньшим заданного значения 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); }