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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Не выводится текст на русском языке http://www.cyberforum.ru/cpp-beginners/thread760032.html
почему текст сообщения на русском языке в программе на с++ не выводиться на русском языке при работе программы в операционной системе ms doc в консольном режиме?
C++ Создать функцию вывода в файл таблицы ASCII Создать функцию вывода в файл таблицы ASCII, который состоит из колонок, количество которых задано с клавиатуры, "код символа" - "символ". Таблица должна начинаться с 32-го символа и завершатся... http://www.cyberforum.ru/cpp-beginners/thread760020.html
Как вызвать метод вектора из динамического массива? C++
vector<some_type> *t=new vector<int> ; как вызвать метод из структуры\класса some_type? как разыменовать этот указатель, я уже как не пробовал, задолбался Добавлено через 3 минуты и как...
C++ Операторы >> и <<
Сама задача. Реализовать класс «бинарное дерево» рекурсивно реализовав в нем метод добавления элемента, а также (нерекурсивно) метод поиска элемента в дереве. Наследовавшись от класса добавить...
C++ Вызов функции в шаблоне класса http://www.cyberforum.ru/cpp-beginners/thread759985.html
Выполняю,через шаблоны класса. Вообщем,в меню не могу вызвать функции. Скажите,все ли правильно в вызове функций? вот файл .h #include <stdio.h> # include <conio.h> # include <stdlib.h> #...
C++ Точка входа должна быть определена #include <iostream> using namespace std; template<class T> T min2(T a,T b) { return a<b? a: b; } int main() { подробнее

Показать сообщение отдельно
Etete
0 / 0 / 1
Регистрация: 27.12.2010
Сообщений: 40

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

13.01.2013, 00:50. Просмотров 308. Ответов 6
Метки (Все метки)

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include <iostream>
 
using namespace std;
 
class List
{
private:
    struct Node
    {
        int data;
        Node *next;
    };
    Node *first;
public:
    List()
    {
        first = NULL;
    }
    void add(int a)
    {
        Node *temp = new Node;
        if(first == NULL)
        {
            temp->data = a;
            temp->next = NULL;
            first = temp;
        }
        else
        {
            temp = first;
            while(temp->next != NULL)
                temp = temp->next;
            temp->next = new Node;
            temp = temp->next;
            temp->data = a;
            temp->next = NULL;
        }
    }
 
    void print()
    {
        Node *temp = first;
        while(temp != NULL)
        {
            cout << temp->data << ' ';
            temp = temp->next;
        }
    }
 
    void remove(int a)
    {
        Node *temp = first;
        Node *sFirst = first;
        do
        {
            if(temp == first && a == temp->data)
            {
                first = temp->next;
                return;
            }
            else if(temp->next == NULL && a == temp->data)
            {
                temp->next = temp;
                return;
            }
            else if(temp->data == a)
            {
                while(1)
                {
                    if(sFirst->next == temp)
                    {
                        sFirst = sFirst->next;
                        break;
                    }
                }
                sFirst->next = temp->next;
                return;
            }
            temp = temp->next;
 
        } while(temp->data != a);
    }
};
 
int main()
{
    List a;
    a.add(1);
    a.add(2);
    a.add(3);
    a.add(4);
    a.add(5);
    a.remove(1);
    a.print();
    return 0;
}
Функция remove работает только для первого контейнера. В чём проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru