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

Удаление элемента из списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка пузырьковым методом http://www.cyberforum.ru/cpp-beginners/thread713971.html
На вход подается некоторое количество описаний книг (автор, название, количество страниц). Отсортировать и вывести в алфавитном порядке по названиям. пузырьковым методом.
C++ Точность float Объясните, пожалуйста,когда у числа типа float точность 7 цифр, а когда 8. Желательно с примером)Весь интернет облазил, ответ так и не нашел. P.S. Про экспоненту, мантиссу и т.п. неоднократно уже читал http://www.cyberforum.ru/cpp-beginners/thread713962.html
C++ вывести на друк слово "Одинаковые" если эти массивы полностью совпадают,и слово "Разные" в противоположном случае.
Создать два символьных массива по 12 элементов , и вывести на друк слово "Одинаковые" если эти массивы полностью совпадают,и слово "Разные" в противоположном случае.
программа с рекурсивной функцией C++
написать программу на языке с++ решить задачу не используя операторы цикла написать программу с рекурсивной функцией вычисляющей
C++ Перегрузить http://www.cyberforum.ru/cpp-beginners/thread713949.html
#include <conio> #include <iostream> #include <stdio> using namespace std; class summa { private: double first; int second; public: summa() {};
C++ Двумерные массивы. Найти произведение элементов, расположенных между первым отрицательным числом и последним четным числом в матрице вычислить произведение элементов, расположенных между первым отрицательным числом и последним четным числом в матрице. какое условие задать(туплю)? потом все это преобразую в файлы)Правила форума п. 3.4: Избегайте использования слишком большого количества смайлов в сообщениях в тематических разделах форума, а также "кричащего" выделения текста, в том числе CAPS LOCK. Правила форума п. 5.4:... подробнее

Показать сообщение отдельно
Yakov112
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 69
30.11.2012, 00:30  [ТС]     Удаление элемента из списка
Kuzia domovenok, а не подскажете как реализовать удаление элемента из списка?
вот что у меня получилось, но совсем запутался...а результат когда запускаю прогу, выдает что элемента не существует
вот код
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
void delElem(int numb, spisok &sp)          //функция удаления элемента
{
//  Element *pTemp = pHead;     //создаем временный элемент
    /*int info;
    cout<<"\ndelFirst";
    elem *temp = new elem;
    temp -> info = info;
    temp -> prev == NULL;*/
 elem *temp = sp.begin;
    if ((numb>sp.count) || (numb<1))     //если указанный элемент не существует, то
        cout << "Takogo elementa net" << endl;  //выводим предупреждение на экран
    else
    {
        for(int i=1; i!=numb; i++)  //иначе, переходим до этого элемента
        {
            temp = temp->next;
        }
 
        if (temp -> prev == NULL)       //если удаляем первый элемент
        {
            if (sp.count == 1)      //если этот элемент единственный
            {
                sp.begin = NULL;
                sp.end = NULL;
            }
            else                //если он первый, но не единственный
            {
                temp->next->prev = NULL;
                sp.begin = temp->next;
            }
 
            delete temp;
            sp.count--;
            cout << "Element " << numb << " udalen" << endl;
            return;
        }
 
        if (temp->next == NULL)     //если удаляем последний элемент, то
        {
            temp->prev->next = NULL;    //предыдущий элемент указывает 
//на NULL
            sp.end = temp->prev;        //указатель на последний элемент 
//указывает на предпоследний
 
            delete temp;
            sp.count--;
            cout << "Element " << numb << " udalen" << endl;
            return;
        }       
 
//если элемент находится в центре списка
        if (temp->next != NULL && temp->prev != NULL) 
        {
            temp->prev->next = temp->next; //предыдущий элемент указывает 
  //на следующий
            temp->next->prev = temp->prev; //следующий указывает на 
  //предыдущий
            delete temp;
            sp.count--;
            cout << "Element " << numb << " udalen" << endl;
            return;
        }
    }
};
 
Текущее время: 13:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru