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

Двунаправленный кольцевой список (удаление узлов) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить количество знаков препинания в тексте http://www.cyberforum.ru/cpp-beginners/thread863538.html
Дан текст. Определить, сколько символов знаков препинания в нем (точка, запятая, двоеточие, тире, и пр.).
C++ Определить количество букв в предложении Дано предложение. Определить, сколько раз встречается буква let в данном предложении (let задается с клавиатуры). http://www.cyberforum.ru/cpp-beginners/thread863536.html
Посчитать количество символов в слове C++
Дано название футбольной команды. Подсчитайте, сколько в нем символов.
Удаление списка C++
Программа добавляющая заявки на авиабилеты. Есть функции добавления и вывода всех заявок, помогите сделать удаление ВСЕХ заявок. //#include "stdafx.h" #include <cstdio> #include <conio.h> #include <clocale> #include <windows.h> #include <stdlib.h> #include <iostream>
C++ Слова с похожими буквами http://www.cyberforum.ru/cpp-beginners/thread863516.html
Как выводи слова, которые имеют разные буквы? То есть, допустим есть слова: афина, авто, ручка, мел. Как сделать так, чтобы алгоритм выводил слово, которое имеет уникальные буквы( в данном случае это - мел)?
C++ Ввод символов в массив Как ввести в массив 30 символов, которые будут вводить без пробелов и переносов строк, то есть строку вида: 123456789...n , нужно привести к виду: char mass mass={1}{2}{3}{4}{5}{6}{7}{8}{9}...{n} подробнее

Показать сообщение отдельно
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
13.05.2013, 16:48     Двунаправленный кольцевой список (удаление узлов)
Если у тебя кольцевой список то я не глянул то у тебя next в последнем элементе не будет равно 0, а будет указывать на первый а prev в первом элементе на последний. А чтобы удалить из средины списка тебе нужно просто допустим ты находишься в текущем элементе который ты хочешь удалить , где то в средине списка next - это следующий элемент prev - это предыдущий мы в tek - в текущем элементе, что нам делать? tek у нас должен стать допустим prev. Делаем tek=tek->prev; Элемент который у нас был до этого tek->next->prev должен стать tek->prev; ,Нам нужно еще и сохранить текущий адрес для удаления Link* del=tek; , еще нужно tek->prev->next выставить правильно. Щас попытаюсь правильную последовательность написать, потому что если что то перепутать, то оно работать как надо не будет.
Делаешь так ты в текущем элементе (обязательно есть следущий и предыдущий)
C++
1
2
3
4
5
List* del=tek; //сохраняем адрес для высвобождения памяти
tek->prev->next=tek->next; //меняем ссылки мимо текущего элемента
tek->next->prev=tek->prev;//то же самое
tek=tek->prev;//присваиваем текущим элемент который предыдищий.
delete del; //высвобождение памяти
Тут нужно проверять потому что я без проверки так с головы набрал, возможно ошибся где то. Нужно проверять.
 
Текущее время: 02:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru