Quick actions

cmd+k|ctrl+k

Navigation

Languages

Пример двунаправленного списка

Snippet info

Language

Cpp

Visibility

public

Author

svobodatimur

Created

2021-04-08T17:51:14.031583Z

Updated

2021-04-12T18:16:39.121816Z

#include <iostream>
using namespace std;

struct Node
{
    float data;
    Node *next, *prev;
};

class List {
    Node *head, *tail;
    
public:
    List() : head(nullptr), tail(nullptr) {};
    ~List();
    void add(float data);
};

List::~List()
{
    while(head != nullptr)
    {
        tail = head->next;
        delete head;
        head = tail;
    }
    head = tail = nullptr;
}

void List::add(float data){
    Node *newNode = new Node;
    newNode->data = data;
    newNode->next = newNode->prev = nullptr;
    
    if (head != nullptr) {
        newNode->prev = tail;
        tail->next = newNode;
    } else head = newNode;
    tail = newNode;
    
    cout << "В конец списка добавлен объект со значением: " << newNode->data << endl;
}


int main() {
    List list;
    list.add(1.52);
    list.add(4.2424);
    cout << endl;
    return 0;
}
INFO