![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| SergXP |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 16.4.2008 Репутация: нет Всего: нет |
Всем Доброе Время Суток.
И снова у меня возник вопрос, на который надеюсь получить ответ. Имеется структура:
Нужно удалить определенный элемент списка. Так я добавляю в начало списка:
А как удалить, что-то не найду никак. С Уважение! Спасибо! --------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/ |
||||
|
|||||
| REZiaMIX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Чтобы удалить из такого списка x надо:
узнать элемент следующий после x , т.е. x.next и установить значение next предыдущего элемента , в значение x.next ну и сделать delete всему что нужно. -------------------- ![]() |
|||
|
||||
| SergXP |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 16.4.2008 Репутация: нет Всего: нет |
REZiaMIX, извените, а можно на примере показать, как это сделать? Что-то я с этими указателями и списками путаюсь.
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/ |
|||
|
||||
| REZiaMIX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Примерно так. Это сообщение отредактировал(а) REZiaMIX - 24.11.2008, 00:28 -------------------- ![]() |
|||
|
||||
| SergXP |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 16.4.2008 Репутация: нет Всего: нет |
REZiaMIX, я так понимаю мне нужен вот этот кусочек из вашего кода?
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/ |
|||
|
||||
| REZiaMIX |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Да , но в Ваш список надо наверное добавить prev. Ну и подкорректировать все соответственно. -------------------- ![]() |
||||
|
|||||
| SergXP |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 16.4.2008 Репутация: нет Всего: нет |
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/ |
|||
|
||||
| inside_pointer |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: 5 Всего: 12 |
вывод
удалять можно и голову и хвост, в случае когда удаляется что-то не существующее, список оставляется без изменений update: заменил функцию addlist, не было проверки при выделении памяти Это сообщение отредактировал(а) inside_pointer - 26.11.2008, 03:55 |
||||
|
|||||
| REZiaMIX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
В этом способе минус - надо обходить весь список чтобы удалить элемент. а если в списке миллион элементов?!)) -------------------- ![]() |
|||
|
||||
| SergXP |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 16.4.2008 Репутация: нет Всего: нет |
Вроде все легко, а сделать все равно не получается. Хотелось бы внедрить в свой код, чтобы удалить. Но происходят то различные ошибки, то ниче не работает.
--------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/ |
|||
|
||||
| REZiaMIX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Прикрепи исходник программы , попытаемся сделать) Мб стоит использовать stl контейнеры? -------------------- ![]() |
|||
|
||||
| SergXP |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 150 Регистрация: 16.4.2008 Репутация: нет Всего: нет |
REZiaMIX, огромное спасибо.
Вот исходник список сделан в виде класса:
Соответственно, чтобы довать в список: Вызываем: list.add_back(все параметры); // для добавления в конец списка list.add_front(все параметры); // для добавления в начало списка И при возможности, тоже вопрос. как добавить в список элемент в определенное место списка? Очень нужна ваша, помощь. Не гуру я в этом C++. Ну и не совсем чайник. Это сообщение отредактировал(а) SergXP - 24.11.2008, 14:38 --------------------
База IMEI-номеров украденных и утерянных мобильных телефоновhttp://imeis.net.ru/ |
|||
|
||||
| REZiaMIX |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Без добавления дополнительных полей(этот 100% работает):
Добавлено @ 15:08 Добавить :
Этот ^ код не проверял. Это сообщение отредактировал(а) REZiaMIX - 24.11.2008, 15:08 -------------------- ![]() |
||||
|
|||||
| inside_pointer |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: 5 Всего: 12 |
а, так бы и сказал (прочитал первое сообщение)
тут тоже миллион будет долго перебирать, но так как список однозвязный (у автора), другого пути не вижу Добавлено через 9 минут и 57 секунд
REZiaMIX, а что там ошибок нет, в строчке prev->next = ptr->next; ? |
||||
|
|||||
| REZiaMIX |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 3.11.2007 Репутация: нет Всего: 4 |
Сделать двусвязным) как в 1 примере
В чем ошибка? указатель на следующий элемент(предыдущего элемента) устанавливается на указатель на следующий элемент , удаляемого элемента ![]() --------------------------------------------------------------------------- ![]() Для односвязного списка все также , только без prev. Это сообщение отредактировал(а) REZiaMIX - 25.11.2008, 13:00 -------------------- ![]() |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |