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

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

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

> Задача с деревом.
Timon
сообщение 26.07.2005 18:56
Сообщение #1


Гость






Добрый день.
Помогите, плиз. Дана вот такая задачка:

Текстовый файл содержит набор целых чисел. Прочитать его в память и сформировать бинарное дерево, содержащий номера элементов исходного массива, абсолютное значение которых является простым числом. Повторяющиеся значения в дерево не включать.
Порядок ввода исходных данных:
- имя файла с данными;
- файл с числами. Числа размещены в нескольких строках и отделены друг от друга пробелом или концом строки. Признаком окончания данных является конец файла.
Порядок вывода результатов:
- исходные данные;
- число элементов в дереве;
- элементы дерева в порядке убывания значений.

Сама программа, вроде бы не особо сложная, но как-то не получается не включать повторяющиеся значения. Помогите плиз.

И ещё, если не сложно, напишите вкрадце как вывести дерево в порядке убывания значений. Просто сдавать уже завтра и с отчётом, а надо ещё одну программу дописать.
Заранее спасибо.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 26.07.2005 19:21
Сообщение #2


Гость






Цитата(Timon @ 26.07.05 18:56)
Сама программа, вроде бы не особо сложная, но как-то не получается не включать повторяющиеся значения. Помогите плиз.
Это еще почему? Перед занесением в дерево проверяй элемент на дублирование... Что-то в этом роде:
Var
arr: array[1 .. 20] of integer; { для примера }

Function DuplicateElement(index: integer): Boolean;
...
Begin
DuplicateElement := False;
For i := 1 To Pred(index) Do
If arr[i] = arr[index] Then Begin
DuplicateElement := True; Exit
End;
End;

...
For i := 1 To n Do
If not DuplicateElement(i) Then AddToTree(root, i);

Может быть можно и еще проще... ;)

Цитата(Timon @ 26.07.05 18:56)
И ещё, если не сложно, напишите вкрадце как вывести дерево в порядке убывания значений.
В порядке убывания каких значений? Индексов, или именно значений?
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



- Текстовая версия 27.07.2025 4:15
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"