blob: 50f71c62aa4e9627ceb5b14646471d9c35b45219 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#pragma once
#include <optional>
#include <ostream>
#include "node.hh"
class List
{
public:
List();
void push_front(int i);
void push_back(int i);
std::optional<int> pop_front();
std::optional<int> pop_back();
void print(std::ostream& os) const;
size_t length() const;
private:
size_t nb_elts_;
std::shared_ptr<Node> first_;
std::shared_ptr<Node> last_;
};
|