Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <locale.h>
- #include <iostream>
- #include <cstring>
- using namespace std;
- struct node {
- string val;
- node* next;
- };
- static node* head;
- // функция вывода массива
- void print() {
- node* curr = head;
- while (curr) {
- cout << curr->val << endl;
- curr = curr->next;
- }
- }
- int main() {
- setlocale(LC_ALL, "Rus");
- string mas[4] = {"ahaha", "opopop", "bruh", "kek"};
- string to_del = "kek"; // элемент, который нужно удалить, по совместительству - является первым в элементом массива
- head = NULL;
- for (int i = 0; i < 4; i++) {
- string val = mas[i];
- if (!head) {
- head = new node;
- head->val = val;
- head->next = NULL;
- }
- else {
- node* tmp = new node;
- tmp->val = val;
- tmp->next = head;
- head = tmp;
- }
- }
- print(); // выводим изначальный массив (выводится в обратном порядке, но это не критично)
- node* curr = head;
- while (curr) {
- if (curr->val == to_del) {
- // ?
- }
- // тут, если следующий элемент массива является нужным, то мы его удаляем. Вопрос заключается в том, как
- // реализовать проверку выше
- if (curr->next && curr->next->val == to_del) {
- node* temp = curr->next;
- curr->next = curr->next->next;
- delete temp;
- }
- curr = curr -> next;
- }
- cout << endl;
- print();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement