Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Mishnik
14 / 14 / 2
Регистрация: 07.05.2011
Сообщений: 42
1

Односвязный список - удаление - совет

10.05.2011, 02:27. Просмотров 1209. Ответов 2
Метки нет (Все метки)

Как лучше удалять элементы из однонаправленного списка?
Я знаю два варианта:
1)[классический] Идем по списку и сохраняем в отдельную переменную указатель на предыдущий элемент. После этого перезаписываем поле next пред. элемента и удаляем уже ненужный элемент.
2)[немного бредовый] Идем по списку. Находим нужный элемент(I). Сохраняем физически след элемент в левую переменную(Q). Удаляем оба элемента и в уже бывшее место хранения I, записываем из переменной Q данные.

В конкретно моей задаче все данные небольшие, поэтому скорость перезаписи должна быть высокой. Удалять придется много раз. Не хочеться с пограничными случаями морочиться...
Большая просьба обосновывать ответ.
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.05.2011, 02:27
Ответы с готовыми решениями:

Односвязный список (удаление элементов)
Функция должна удалять все элементы у которых поле будет совпадать с полем...

Односвязный список: удаление элемента
написал такой код . но оно не удаляет первый элемент . как исправить ? bool...

Односвязный список. Добавление и удаление в строку
Здравствуйте, есть задача. Дана строка, если в ней встречается '*', то нужно...

Односвязный список: оптимальное удаление элемента
оптимальный способ удаления из односвязное списка любого элемента списка?

Односвязный список (очередь). Удаление узла
Необходимо определить есть ли в списке узел, содержащий значение, введенное с...

2
accept
4833 / 3255 / 455
Регистрация: 10.12.2008
Сообщений: 10,569
10.05.2011, 06:28 2
Цитата Сообщение от Mishnik
2)[немного бредовый] Идем по списку. Находим нужный элемент(I). Сохраняем физически след элемент в левую переменную(Q). Удаляем оба элемента и в уже бывшее место хранения I, записываем из переменной Q данные.
там может быть большой узел, следовательно и операция с ним займёт больше времени

Цитата Сообщение от Mishnik
Не хочеться с пограничными случаями морочиться...
prev = NULL изначально, так можно определить голову
хвост->next == NULL так что и перезапись указателя на следующий пройдёт нормально, предыдущий станет хвостом
1
Mishnik
14 / 14 / 2
Регистрация: 07.05.2011
Сообщений: 42
10.05.2011, 11:49  [ТС] 3
Спасибо, про хвост знал, но список разветвленный и с головой нельзя так просто.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2011, 11:49

Сформировать список из 10 книг, используя динамическую структуру данных односвязный список
друзья спасайте Сформировать список из 10 книг, используя динамическую...

Заменить массив структур на односвязный список, и на двусвязный список
Взять текст задания и заменить массив структур на односвязный список, и на...

Создать двусвязный список групп факультета, где каждая группа представляет собой односвязный список студентов
Задание: создайте двусвязный список групп факультета. Каждая группа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru