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

Реализация ф-ции удаления элемента из списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Кошелек. Нужно дописать метод который бы позволял юзеру http://www.cyberforum.ru/cpp-beginners/thread1755264.html
в выбранном им кошельке в ручном режиме изменить количество купюр с пересчетом общего количества денег. Вот то что есть. Код: #include <iostream> #include <Windows.h> #include <ctime> #include...
C++ Даны три случайных однозначных числа. Вывести на экран квадраты нечетных чисел. Использовать подпрограмму, опр Даны три случайных однозначных числа. Вывести на экран квадраты нечетных чисел. Использовать подпрограмму, определяющую нечетность числа. http://www.cyberforum.ru/cpp-beginners/thread1755248.html
C++ Очистка памяти при завершении работы функции, как правильно возвращать значения?
Я вывел для себя 2 способа возвращать значения работы функции string Add(string a1, string a2) { string returnStr; returnStr += a1 + "\n"; returnStr += a2 + "\n"; return returnStr; }
Строки в С++ C++
Помогите пожалуйста решить эту задачу: дан текст. Найти все слова, содержащие букву а. Если можно написать простую программу , что-то похожее на эту, которую я написал для подсчета слов. #include...
C++ Построение Эллипса http://www.cyberforum.ru/cpp-beginners/thread1755224.html
Построить Эллипс в среде программирования C++ с эксцентриситетом 3.14 и что бы фокус эллипса совпадал с началом координат.
C++ Отличия QString от String что такое QString и чем отличается от String? подробнее

Показать сообщение отдельно
Vort_
186 / 186 / 52
Регистрация: 10.07.2012
Сообщений: 400
05.06.2016, 18:17
Давно не работал со списками. Но попробую.
Вот мой вариант функции удаления:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void infolist <type>::burner(int k)
{
    info <type>* prev = NULL;
    info <type>* current = first;
    while (current != NULL)
    {
        if (current->data.id == k)
        {
            if (prev != NULL)
                prev->next = current->next;
            else
                first = current->next;
            delete current;
            return;
        }
        prev = current;
        current = current->next;
    }
}
Первый параметр я убрал, так как он не нужен.

Ещё хочу отметить, что сохранение в файл работает неверно.
При сохранении надо перебирать все элементы так же, как и при выводе на экран.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru