Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 14.04.2020
Сообщений: 6
1

RemoveByValue в листе

14.04.2020, 18:20. Показов 915. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нужна помощь в реализации RemoveByValue(int value){} - удаляет один первый элемент слева, со значением value
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include <iostream>
 
struct Node {
    int value;
    Node* next;
 
    Node(int value, Node* next) {
        this->value = value;
        this->next = next;
    }
 
    Node(int value) {
        this->value = value;
        this->next = nullptr;
    }
};
 
class LinkedList {
private:
    Node* root;
public:
    LinkedList() {
        root = nullptr;
    }
 
    void clear() {
        Node* nexel;
 
        while (root != nullptr) {
            nexel = root->next;
            delete root;
            root = nexel;
        }
    }
 
    int size() {
 
        int size = 0;
        Node* this_node = root;
 
        while (this_node != nullptr) {
            size++;
            this_node = this_node->next;
        }
 
        return size;
    }
 
    void print() {
        Node* this_node = root;
 
        while (this_node != nullptr) {
            std::cout << this_node->value << " ";
            this_node = this_node->next;
        }
        std::cout << std::endl;
    }
 
    int GetElement(int index) {
        Node* this_node = root;
        for (int i = 0; i < index; ++i) {
            this_node = this_node->next;
        }
        return this_node->value;
    }
 
 
    void push(int element) {
        Node* new_node = new Node(element, root);
        root = new_node;
    }
 
    void insert(int element, int pos) {
 
        if (pos < 0 || pos > size()) {
            return;
        }
 
        Node* new_node = new Node(element);
 
        Node* next_node = root;
 
        Node* previous_node = nullptr;
 
        for (int i = 0; i < pos; i++) {
            previous_node = next_node;
            next_node = next_node->next;
        }
 
        if (previous_node == nullptr) {
            new_node->next = root;
            root = new_node;
            return;
        }
 
        previous_node->next = new_node;
 
        new_node->next = next_node;
 
    }
 
    void remove(int pos) {
        if (pos < 0 || pos >= size()) return;
 
        Node* previous_node = nullptr;
 
        Node* current_node = root;
 
        for (int i = 0; i < pos; i++) {
            previous_node = current_node;
            current_node = current_node->next;
        }
 
        if (previous_node == nullptr) {
            Node* nexel = root->next;
 
            delete root;
            root = nexel;
 
            return;
        }
 
        previous_node->next = current_node->next;
 
        delete current_node;
    }
 
    void RemoveByValue(int value) {
 
    }
 
 
    ~LinkedList() {
        clear();
    }
};
 
int main()
{
    LinkedList list;
    list.push(7);
    list.print();
    list.push(2);
    list.print();
    list.push(-8);
    list.print();
 
    list.insert(14, 0);
    list.print();
    list.insert(47, 2);
    list.print();
 
    list.remove(0);
    list.print();
 
    list.remove(2);
    list.print();
 
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.04.2020, 18:20
Ответы с готовыми решениями:

Сравнить ячейки на первом листе и на втором листе, в случае несовпадения удалить
Задача такая,В Exel есть несколько ячеек с данными String на первом листе и на втором листе. Я...

Как вставку строки на одном листе повторить на другом листе?
Вопрос из области сбора данных из нескольких листов на один лист. Пример (прототип) представлен в...

По нажатию кнопки создать на втором листе строку и заполнить ее данными с формы на первом листе
Здравствуйте. Помогите решить задачу: Имеется книга с двумя листами на первом листе форма-...

Нажатием горячих клавиш внести из ячейки на пятом листе данные в конкретно выбранную ячейку на 1-ом листе
Ребята, дело такое. Нужна помощь в следующем: Есть книга. В ней 5 листов. на 5-ом листе хранится...

1
6106 / 3460 / 1406
Регистрация: 07.02.2019
Сообщений: 8,794
14.04.2020, 18:29 2
Лучший ответ Сообщение было отмечено Awoke как решение

Решение

Awoke,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    void RemoveByValue(int value) {
        Node* curr = root;
        Node* prev = nullptr;
        while (curr)
        {
            if (curr->value == value)
            {
                if (prev) prev->next = curr->next;
                else root = curr->next;
                delete curr;
                return;
            }
            prev = curr;
            curr = curr->next;
        }
    }
1
14.04.2020, 18:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2020, 18:29
Помогаю со студенческими работами здесь

На третьем листе макрос должен выводить данные с первого листа, которые не встречаются на втором листе
неделю болел, когда пришел, задали написать программу, где есть 3 листа, на первом листе есть...

Найти и заменить изображение в Word на листе i листе?
Вот так вот нахожу и заменяю текст в документе Word MSWORD.Selection.Find.Forward:= True; ...

Нужно на листе заказа при вводе номера артикула в любую ячейку столбца С, производить поиск на базовом листе в столбце 'А'
Есть базовый лист с двумя столбцами - 'А'-Артикул и 'В'-Наименование Нужно на листе заказа при...

Из одной ячейки на одном листе раскидать данные в другие ячейки в другом листе
Помогите пожалуйста! Экстренная ситуация, вплоть до увольнения:( Надо из одной ячейки на одном...

Привязать значение ячейки на одном листе к значению ячейки в другом листе
как привязать значение ячейки на одном листе к значению ячейки в другом листе, чтобы при сортировке...

Поиск на 1 листе текста со 2-й ячейки 6 столбца со сравнением на 2-листе со 2-й ячейки 6 столбца
Прошу помочь Макрос поиска на 1-ом листе текста со 2-й ячейки 6 столбца с сравнением его на 2-листе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru