![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Winniepoohless |
![]()
Сообщение
#1
|
Гость ![]() |
Собственно, условие подобной задачи (олимпиадской) на форуме приводилось (решение - нет):
Привожу еще раз условие: Дан текст, в котором встречаются слова, состоящие из букв русского и латинского алфавитов и цифр, знаки препинания, пробелы и переводы строк. Требуется найти количество вхождений каждого слова в этот текст Для каждого слова при выводе в скобках указать количество его вхождений в текст. ************************************************************************* Понятно, что решение надо делать через двоичное дерево. Часть программы есть, но не допру, как дальше: uses crt; type {ссылка на узел дерева} TFindTreePtr = ^TFindTreeNode; TFindtreeNode = record info: word; count: integer; left, right: TFindTreePtr; end; var InFile: Text; {исходный файл} FileName: string; {имя файла данных} root: TFindTreePtr; str: word; {текущий обрабатываемое слово} ErrCode: integer; {код ошибки при открытии файла} ask: char; {символ-отклик при выборе режима вывода} procedure Search (c: string; var node: TFindTreePtr); begin if node=nil then begin node:=New(TFindTreePtr); node^.info:=c; node^.count:=1; node^.left:=nil; {новый лист} node^.right:=nil; end else if c< node^.info then Search (c,node^.left) else if c>node^.info then Search (c,node^.right) else node^.count := node^.count+1; end; |
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Да, кстати, двоичных деревьев в решении я не использовал, обычный список ...
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Winniepoohless |
![]()
Сообщение
#3
|
Гость ![]() |
|
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 20:52 |