Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > [C++] Бинарное дерево |
Автор: eppi 16.6.2015, 12:03 |
Друзья, помогите реализовать задачу в виде бинарного дерева: Оператор мобильной связи организовал базу данных абонентов, содержащую сведения о телефонах, их владельцах и используемых тарифах, в виде бинарного дерева. Составьте программу, которая: o обеспечивает начальное формирование базы данных в виде бинарного дерева; o производит вывод всей базы данных; o производит поиск владельца по номеру телефона; o выводит наиболее востребованный тариф (по наибольшему числу абонентов). Заранее огромное спасибо !!! ![]() |
Автор: bsa 16.6.2015, 12:22 |
Для домашних заданий, курсовых, существует "Центр Помощи". Тема перенесена! |
Автор: rudolfninja 17.6.2015, 12:12 |
Привет. Не вижу смысла использовать тут бинарное дерево. Наверное, бинарное дерево поможет быстрее найти только номер телефона, а вот самый востребованный тариф...я бы искал по другому. Например, создал перечисление тарифов и массив, в котором индексами будут элементы перечисления, а значения - количество абонентов, использующих данный тариф. |
Автор: eppi 17.6.2015, 20:05 | ||
Спасибо, я понял ход твоих мыслей ![]() |
Автор: rudolfninja 18.6.2015, 16:34 |
Я понимаю, что дерево нужно только для хранения базы данных об абонентах и, вероятно, более быстрого поиска по номеру телефона (если его исользовать как значение узла дерева). То есть, сначала надо будет создать класс/структуру, описывающую абонента и переопределить в ней оператор сравнения (больше или меньше). Затем понадобится дерево. В принципе, можно взять и дерево поиска и сортирующее дерево (какое будет проще реализовать то и используй). Дерево будет хранить в себе информацию об абоненте (ФИО владельца, номер, тариф). Причем ключем, по которому будут размещатся элементы, будет номер телефона (строковое значение). Это ускорит поиск для владельца по номеру телефона. Задача с выводом базы данных и определением наиболее популяроного тарифа решается путем обхода всего дерева. Для вывода просто обходишь дерево и выводишь информацию с каждого узла. Для поиска тарифа я описал метод выше. |