IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Деревья, Чтение и запись деревьев
сообщение
Сообщение #1


Гость






Народ, Help, очень срочно завтра лабораторную сдавать. Тема: Деревья. Задание такое, найти в исходном коде паскалевской проги все индентификаторы, а потом вывести его и номера строк, где он встречается. Это я сделал. Но так как тема деревья, то я понимаю, что результаты поиска надо в дерево записывать, а потом через него же и выводить на экран. Так вот как мне решить такую задачу: найден какой-то идентификатор, записываем его в правую ветвь, если же он есть в павой ветви, то в левую ветвь от него пишем номер строки, где он встречается. Иллюстрирую:
Цитата
    идент(1)
    /      \
  №стр    идент(2)
          /      \
        №стр    идент(3)
                /        \
              №стр    идент(4)

И так далее. Вроде бы понятно обьяснил.

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






С чем затруднения? Как определить, если ли идентификатор в дереве?
type
PTTree = ^TTree;
TTree = record
left_data: integer;
right_data: String;
right: PTTree;
{ влево дерево уходить не может - left не нужен }
end;

function find_id(T: PTTree; s: string): PTTree;
begin
find_id := nil; p := T;
while p <> nil do begin
if p^.right_data = s then begin
find_id := p; exit;
end;
p := p^.right;
end;
end;

Как добавить для существующего в дереве ID номер строки?
node := find_it(root, s);
if node <> nil then node^.left_data := str_num;

Все остальные процедуры точно так же элементарно переделываются из процедур для бинарного дерева... Так в чем сложность?
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 17.05.2024 5:55
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name