![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Гость_Fred |
|
|||
Unregistered |
Ребята помогите кто-нибудь реализовать двоичное дерево
вот само условие "На междугородной телефонной станции картотека абонентов, содержащая сведения о телефонах и их владельцах, организована как двоичное дерево. Составить программу, которая: • обеспечивает начальное формирование картотеки в виде двоичного дерева; • производит вывод всей картотеки; • вводит номер телефона и время разговора; • выводит извещение на оплату телефонного разговора. Программа должна обеспечивать диалог с помощью меню и контроль ошибок при вводе." Горю выручайте ... ![]() |
|||
|
||||
bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
STL пойдет?
|
|||
|
||||
Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 92 |
Во первых из условия не понятно, что именно должно служить основой формирования дерева. Фамилии абонентов или номера телефонов? Дальше непонятно откуда берётся информация о времени разговора?
А смысл? Взять и всё запихнуть в map это очень соблазнительно, но у него это лаба по программированию ![]() Я бы её рублей в 500 оценил ![]() Это сообщение отредактировал(а) Дрон - 31.5.2005, 23:35 -------------------- Да. Именно так. |
|||
|
||||
Guest |
|
|||
Unregistered |
А как вообще строится двоичное дерево?
Или можно это программу реализовать в виде списков (односвязанных,двухсвязанных)? Мне нужна просто сама реализация а уж до остального как нибудь сам допетрюсь, с динамикой у меня туган .... |
|||
|
||||
Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 92 |
Ну если, например, строить дерево по фамилиям, то принцип такой:
Берём первую фамилию. Записываем в корень дерва. Берём следующую. Сравниваем с первой. Если меньше, то записываем в левую ветвь, если больше, то в правую (меньше или больше это можно определить функцией strcmp). Дальше сравниваем третью фамилию с корнем. Пусть она тоже меньше, как и вторая. Тогда переходим в левую ветвь и сравниваем со второй. Если она меньше второй, то пишем в левую ветвь второй, иначе в правую второй. И т.д. Примерно так:
Обязательно надо написать деструктор, чтобы освободить память от строк и удалить дерево. Да и вообще код не проверял ![]() -------------------- Да. Именно так. |
|||
|
||||
Fredy |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 1.6.2005 Репутация: нет Всего: 1 |
Спасибо!! Дрон попробую разобраться!!! Если что обращусь за помощью!!
|
|||
|
||||
Знак |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 29.4.2005 Репутация: -5 Всего: нет |
Ха так этож двоичное дерево Хофмана..!
Знаю знаю! тебе надо сжать информацию? для тичера? Вот почитайка http://algolist.manual.ru/compress/standard/huffman.php ![]() Крутая тема и тичер будет доволен!! --------------------
Ищу 2 файлаowl.tchwindows.tch |
|||
|
||||
Void |
|
||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Нет.
Едва ли. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||
|
|||||
___Yuri |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 2.3.2005 Где: МО Репутация: нет Всего: нет |
Дрон, а может выть проще и эффективнее было сделать AVL дерево?
Или что нубудь типа Б - дерева - если записей уж очень много(как по идее и должно быть)? |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Эффективнее - конечно, а вот насчет проще - вряд ли ![]() К тому же, в задании явно указано бинарное дерево. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Знак |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 29.4.2005 Репутация: -5 Всего: нет |
чем различны Бинарное и двоичное деревА
![]() --------------------
Ищу 2 файлаowl.tchwindows.tch |
|||
|
||||
borisvolfson |
|
|||
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 3.2.2005 Репутация: нет Всего: 3 |
Бинарное и двоичное дерево - это одна и таже структура данных.
Что касается, AVL-деревьев - это тоже бинарные деревья со своийствами сбалансированности, в них можно осуществлять быстрый поиск и вставку. |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Я знаю. Вторая фраза относилась уже к B-деревьям - недоквотил. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Знак |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 29.4.2005 Репутация: -5 Всего: нет |
А кто моге ссылку на описание подкинуть ?
по AVL - деревьям... ![]() тока точную а то я задиплюсь в инете ![]() --------------------
Ищу 2 файлаowl.tchwindows.tch |
|||
|
||||
Alastis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 15.11.2004 Где: Казахстан, Астана Репутация: 4 Всего: 10 |
-------------------- Прости, что я говорю, когда ты меня перебиваешь. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |