![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
zabludshiy |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: MAX Репутация: ![]() ![]() ![]() |
Помогите добрые люди разобраться в следующей задаче: заполнить циклический односвязный список с зацикливанием «через голову». Дополнительные операции: a) добавить новый узел в хвост; б) вывести текущий список на экран ... примечание к задаче "Некоторые сложности представляет согласование типов указателей. Например, для инициализации пустого списка не всегда удается просто написать «Head := @Head», это может быть синтаксической ошибкой (в зависимости от настроек компилятора). Более корректно использовать явное преобразование типов: «Head := Link(@Head)». При этом важно, чтобы поле Next было обязательно описано как первое поле записи Node."
Прога получилась следующая:
Заполняется без зависаний и выпадающих ошибок, но когда список выводится происходит зацикливание. Не могу понять почему, нигде не могу найти ни ответа ни подобного примера. Помогите кто чем может!!! ![]() |
![]() ![]() |
zabludshiy |
![]()
Сообщение
#2
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: MAX Репутация: ![]() ![]() ![]() |
К задаче прилагалась схема, которую сразу не выложил (2 схема - структура списка, которую надо сделать), а приведенный код, как я понимаю, описывает структуру, изображенную на 1 схеме. Получается указатель next, который должен указывать на голову L, должен содержать адрес указателя L, т.е. @L, или "явное преобразование типов Head := Link(@Head)"?
Если я правильно понимаю задачу, надо добиться использования link(@L) вместо link(L), т.к. link(L) будет указывать на первую введенную переменную p:
, соответственно второй элемент списка будет указывать на первый элемент, а по условию задачи, он должен указывать на указатель-голову L. Помогите, пожалуйста, разобраться или подскажите, где я заблуждаюсь?! Сообщение отредактировано: zabludshiy - 8.11.2011 16:34 Эскизы прикрепленных изображений ![]() ![]() |
![]() ![]() |
![]() |
Текстовая версия | 1.08.2025 14:43 |