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

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

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

> Работа с односвязным списком.
LivingShadow
сообщение 23.12.2010 14:56
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Здравствуйте, уважаемые форумчане. Есть такое задание:
Удалить из списка один элемент после первого элемента с нулевым значением, если его значение отлично от него.

Написал я для этого дела такую процедуру:

procedure DelX(var start:link);
var p,pr:link;
k:integer;
begin
Writeln('Удаление из списка первого элемента после нуля (если это не ноль)');
k:=0;
p:=start;
while (k=0) AND (p<>nil) do
begin
if (p^.inf=0) then
begin
p:=p^.next;
if (p^.inf=0) then k:=1
else
begin
pr^.next:=p^.next;
dispose(p);
p:=pr^.next;
k:=1;
end;
end
else begin pr:=p; p:=p^.next; end;
end;
if k=0 then writeln('Ни одного нуля не найдено.');
Write('Нажмите любую клавишу');
readln;
end;



Но она очевидно неправильная. Во-первых, когда после нуля идет число, то она удаляет не только это число, но и сам нуль. Когда два нуля подряд - все нормально. Во-вторых программа вылетает, когда список начинается с нуля.
Буду очень благодарен, если сможете указать на мои ошибки.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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