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

Двусвязные списки, не могу добавить узел с конца - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Быстрая сортировка Хоара http://www.cyberforum.ru/cpp-beginners/thread261701.html
Быстрая сортировка Хоара (QSort) разбивает массив в ходе сортировки до тех пор, пока размер частичного подмассива не станет равен 1 элементу. Есть подозрение, что лучше бы она не доводила ...
C++ как выглядит в си++ Program kursak; Const Nmax = 5; {Максимальный размер массива} Type Matrix = array of integer;; m:=m; m:=s; end; end http://www.cyberforum.ru/cpp-beginners/thread261679.html
После каждого вхождения символа C в строку S вставить строку S0 C++
Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0. #include <iostream> #include <string.h> using namespace std; const int N=30;
C++ Моделирование алгоритмических вычислений на машинах произвольного доступа
Построить программу для машины произвольного доступа, реализующая вычисления следующих функций, и найти их значения для заданных неотрицательных аргументов. Входные данные заносятся в регистры МДД...
C++ Вычисление значений функции http://www.cyberforum.ru/cpp-beginners/thread261632.html
Доброго времени суток! Помогите с одной задачей.Надо построить таблицу значений(функция y=ln(x/(x-2))). Если в некоторой точке x функция не определена, то вывести на экран сообщение об этом.Я...
C++ Определить истинные следующие утверждения: Определить истинные следующие утверждения: a) «любое выражение в Си может быть преобразован в оператор добавлением к нему точки с запятой (;)» b) «пустой оператор в Си - это отсутствие каких-либо... подробнее

Показать сообщение отдельно
Dexter
285 / 145 / 16
Регистрация: 13.10.2009
Сообщений: 164
24.03.2011, 13:40
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
list *remove(list *head,list **now){
    list *ptr = NULL;
    // Если список пуст
    if(head == NULL){
        return NULL;
    }
    for(ptr=head;ptr;ptr=ptr->next)
    {
        if(*now == ptr)
        {
            if(ptr->next)ptr->next->prev = ptr->prev;//Если у нас нету предыдущего, то была раньше ошибка
            if(ptr->prev)ptr->prev->next = ptr->next;//аналогично со следующим
            *now = ptr->next;
            if(ptr == head) head = head->next;
            return head;
        }
    }
    return head;//было в цикле, потому выходило сразу после первого значения
};
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru