![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 03.01.2010
Сообщений: 41
|
![]()
Саму идею списка я понимаю, но вот как его реализовать программно? Например удаление елемента из однонаправленного списка?
![]() Буду благодарен любой помощи |
![]() |
![]() |
![]() |
#2 |
Oo
Форумчанин
Регистрация: 10.10.2009
Сообщений: 350
|
![]()
начиная от указателя на первый элемент проходим по всему списку
если совпал номер/значение следующего элемента с удаляемым, то следующий для текущего будет равен следующему для удаляемого ptemp = curr->next; // запоминаем адрес удаляемого элемента curr->next = curr->next->next; delete ptemp ; // освобождаем память как-то так Последний раз редактировалось Namolem; 30.01.2010 в 13:39. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 03.01.2010
Сообщений: 41
|
![]()
Я так понимаю, что curr - указатель на первые елемент списка, а ptemp - на удаляемый
Но вот как присвоить этим указателям нужные елементы? Последний раз редактировалось ordoss; 30.01.2010 в 13:53. |
![]() |
![]() |
![]() |
#4 |
Oo
Форумчанин
Регистрация: 10.10.2009
Сообщений: 350
|
![]()
curr это указатель на текущий элемент. Вначале он равен указателю на первый, для перехода на следующий элемент нужно увеличить его значение на 1
curr++; ptemp - временный элемент для хранения адреса памяти удаляемого элемента. после выполнения curr->next = curr->next->next; удаляемый элемент из списка пропал, но его память все еще помечена как занятая. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 03.01.2010
Сообщений: 41
|
![]() |
![]() |
![]() |
![]() |
#6 |
Oo
Форумчанин
Регистрация: 10.10.2009
Сообщений: 350
|
![]()
указатель на первый элемент создается вместе с списком и вместе с указателем на последний определяет список
|
![]() |
![]() |
![]() |
#7 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
![]() Код:
Последний раз редактировалось profi; 30.01.2010 в 14:41. |
![]() |
![]() |
![]() |
#8 | |
Пользователь
Регистрация: 03.01.2010
Сообщений: 41
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#9 |
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
![]()
Да, указатель first указывает на первый элемент, я подправил пост, и добавил удаление элемента списка. p - с помощью этого указателя выводим список, obj - выделяем под этот указатель память для создание элемента списка.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Однонаправленный неоднородный (гетерогенный) список с однородными подсписками. | Chudo4258 | Помощь студентам | 22 | 08.03.2009 19:11 |
Данные-проверка-список (список на другом листе) | Inbox | Microsoft Office Excel | 7 | 26.12.2008 01:43 |