summaryrefslogtreecommitdiff
path: root/graphs/cpp/doubly_linked_list/node.hh
blob: 9eb2e509ad76250b3fd9d3756b379fda8ef53b96 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once

#include <memory>

class Node
{
public:
    Node(int v);

    int get_val() const;
    void set_val(int val);

    std::shared_ptr<Node> get_next() const;
    void set_next(std::shared_ptr<Node> next);

    std::shared_ptr<Node> get_prev() const;
    void set_prev(std::shared_ptr<Node> prev);

private:
    int val_;
    std::shared_ptr<Node> next_;
    std::weak_ptr<Node> prev_;
};