view algs4-c++/src/Stack.hpp @ 7:a5052f77ba7e

Removed uneeded resize() method from Stack definition.
author Eris Caffee <discordia@eldalin.com>
date Fri, 29 May 2015 20:57:21 -0500
parents 438f5608900e
children 0f99a5ae6cd4
line source
1 #ifndef STACK_HPP
2 #define STACK_HPP
4 #include <cstddef>
6 // Linked list based stack after Sedgewick and Wayne, Algorithms 4th ed, Algorithm 1.2
8 template <typename T>
9 class Stack {
11 public:
13 ////////////////////////////////////
14 class Node {
15 public:
16 T item;
17 Node *next;
18 };
21 ////////////////////////////////////
22 class iterator;
23 friend class iterator;
24 class iterator {
26 public:
28 iterator( Node *c );
30 iterator& operator++();
31 iterator operator++(int);
33 T operator*();
34 bool operator!=( typename Stack<T>::iterator );
36 private:
38 Node *curr;
39 };
41 ////////////////////////////////////
43 Stack( void );
44 ~Stack( void );
46 void push( T &item );
47 T pop( void );
49 bool is_empty( void );
50 size_t size( void );
52 iterator begin( void );
53 iterator end( void );
55 private:
57 size_t N;
58 Node *list;
60 };
64 #endif