Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mishnik
14 / 14 / 1
Регистрация: 07.05.2011
Сообщений: 42
#1

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

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

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

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

Односвязный список: удаление элемента - C++
написал такой код . но оно не удаляет первый элемент . как исправить ? bool DeleteByIndex(Us* first,int index) { Us* prev=0; ...

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

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

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

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

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

Односвязный список - C++
Здравствуйте! Кто может разъяснить как вставить в узел заданного места значение.. 1. Нужно выделить память Elem *Ins = new Elem ...

Односвязный список - C++
Помогите пожалуйста доделать программу, а то я не могу, надо именно в таком формате (векторное представление списка) Само задание - к...

Односвязный список - C++
Во общем, программа создает список и заносит туда элементы с помощью массива. Но при выводе, программа выводит лишний элемент первым. Где...

Односвязный список C++ - C++
помогите решить проблему с выводом суммы, буду благодарен #include <iostream> #include <cctype> using namespace std; struct...


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

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

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

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