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

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Удаление элементов из конца списка, Си
18192123
сообщение 16.05.2007 17:02
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

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


Как можно удалить определённое число элементов из конца односвязного линейного списка?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 16.05.2007 22:00
Сообщение #2


Гость






Зачем? Ты должна идти пока указатель ненулевой, не зря же я тебе отдельно сказал, что его обязательно надо обнулить...

Добавлено через 3 мин.
Стой, стой... Не так:
Цитата
(T=p) -> next = NULL;
, а вот так надо:

T = p -> next; // запоминаешь куда указывал предыдущий элемент
p -> next = NULL; // и потом уже указатель обнуляешь



Не злоупотребляй сдвоенными операциями - это очень легко приводит к ошибкам...

Сообщение отредактировано: volvo - 16.05.2007 22:04
 К началу страницы 
+ Ответить 
18192123
сообщение 16.05.2007 22:42
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

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


Цитата(volvo @ 16.05.2007 23:00) *

Зачем? Ты должна идти пока указатель ненулевой, не зря же я тебе отдельно сказал, что его обязательно надо обнулить...


т.е.

lst=p;
while (p)
{
fprintf(f, "%s",p->number);
p=p->next;
free(p);
}
lst=NULL;


???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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