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

Удалить элемент из односвязного списка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти наибольшее расстояние между точками http://www.cyberforum.ru/cpp-beginners/thread432284.html
Здравствуйте. Пользователь задает координаты нескольких точек, программа должна определить, между какими точками наибольшее расстояние. На экран вывести эти две точки. Вот, что пока накалякал. ...
C++ Как кодираются дробные числа в пакетах? Пытаюсь снифером ловить пакеты и доставать из них данные. В частности несколько приходящих чисел интересует. Целые числа легко находятся, а вот дробные непонятно как искать. Например есть вот такой... http://www.cyberforum.ru/cpp-beginners/thread432277.html
C++ 2 задачи на С ++ и одна задача на С++ на oснoве MFC
Вот а помогите ещё три задачи решить) Вторую задачу не надо. а по четвёртой почти всё сделал но у меня прога не считает уравнение а сразу выдают ошибку если не правильно всё. void...
C++ Максимальный элемент двумерного массива и его положение
Всем доброго времени суток. Помогите, пожалуйста, с задачей... Инициализировать массив n x n. n вводит пользователь. Найти максимальный элемент в массиве и его положение: номер строки, номер...
C++ Помогите разобраться с кодом http://www.cyberforum.ru/cpp-beginners/thread432248.html
Код - проверка ввода данных. Если вводиться "x6x", то вызывается исключение, правильным вводом являются только символы, например: "xxx", исключение работает правильно и после вызова исключения и...
C++ Задачка Ребят, может кто срочно решить задачу? Описать структуры, описывающие шар и точку в 3-мерном пространстве. Определить функцию, которая проверяет, находится ли точка внутри заданного шара. подробнее

Показать сообщение отдельно
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
21.01.2012, 12:19
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int delete_node(list_t *del, list_t **first) {
    list_t *t = (*first)->next;
    list_t *buf;
    if ( *first && *first != del ) { // Если список существует, и удоляемый элемент не является первым
        while ( t && t->next != del ) t = t->next; // Находим элемент, предшествубщий удоляемому
        if ( t ) { // Если он существует, то удаляем
            buf = t->next;
            t->next = t->next->next;
            free(buf);
            return 0; 
        }
        else
            return -1; // Иначе ошибка
    }
    else // Иначе
        if ( *first != del ) { // Если первый
            buf = del;
            *first = del->next;
            free(buf);
            return 0;
        }
        else // Если список пуст
            return -1;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru