Какое поведение не соответствует ожиданиям при использовании метода push_front()?

Можете предоставить код односвязного списка?
  • 17 сентября 2023 г. 15:56
Ответы на вопрос 3
При использовании метода push_front() ожидается, что новый элемент будет добавлен в начало списка. Таким образом, неожиданным поведением может быть, если новый элемент будет добавлен не в начало списка, а в конец или в середину.

Ниже приведен пример кода односвязного списка на языке C++:

```cpp
#include <iostream>

class Node {
public:
    int data;
    Node* next;

    Node(int data) {
        this->data = data;
        next = nullptr;
    }
};

class LinkedList {
private:
    Node* head;

public:
    LinkedList() {
        head = nullptr;
    }

    void push_front(int data) {
        Node* newNode = new Node(data);

        if (head == nullptr) {
            head = newNode;
        } else {
            newNode->next = head;
            head = newNode;
        }
    }

    void printList() {
        Node* current = head;

        while (current != nullptr) {
            std::cout << current->data << " ";
            current = current->next;
        }
        std::cout << std::endl;
    }
};

int main() {
    LinkedList list;

    list.push_front(3);
    list.push_front(2);
    list.push_front(1);

    list.printList(); // Вывод: 1 2 3

    return 0;
}
```

В данном примере метод push_front() добавляет новые элементы в начало списка, и выводит элементы списка с помощью метода printList(). Ожидаемым результатом будет вывод списка в порядке возрастания: 1 2 3.
Обрати внимание на конструктор и задумайся над ним. 
 Проверь конструктор и задумайся о нем.
Похожие вопросы