annotate 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
rev   line source
discordia@6 1 #ifndef STACK_HPP
discordia@6 2 #define STACK_HPP
discordia@6 3
discordia@6 4 #include <cstddef>
discordia@6 5
discordia@6 6 // Linked list based stack after Sedgewick and Wayne, Algorithms 4th ed, Algorithm 1.2
discordia@6 7
discordia@6 8 template <typename T>
discordia@6 9 class Stack {
discordia@6 10
discordia@6 11 public:
discordia@6 12
discordia@6 13 ////////////////////////////////////
discordia@6 14 class Node {
discordia@6 15 public:
discordia@6 16 T item;
discordia@6 17 Node *next;
discordia@6 18 };
discordia@6 19
discordia@6 20
discordia@6 21 ////////////////////////////////////
discordia@6 22 class iterator;
discordia@6 23 friend class iterator;
discordia@6 24 class iterator {
discordia@6 25
discordia@6 26 public:
discordia@6 27
discordia@6 28 iterator( Node *c );
discordia@6 29
discordia@6 30 iterator& operator++();
discordia@6 31 iterator operator++(int);
discordia@6 32
discordia@6 33 T operator*();
discordia@6 34 bool operator!=( typename Stack<T>::iterator );
discordia@6 35
discordia@6 36 private:
discordia@6 37
discordia@6 38 Node *curr;
discordia@6 39 };
discordia@6 40
discordia@6 41 ////////////////////////////////////
discordia@6 42
discordia@6 43 Stack( void );
discordia@6 44 ~Stack( void );
discordia@6 45
discordia@6 46 void push( T &item );
discordia@6 47 T pop( void );
discordia@6 48
discordia@6 49 bool is_empty( void );
discordia@6 50 size_t size( void );
discordia@6 51
discordia@6 52 iterator begin( void );
discordia@6 53 iterator end( void );
discordia@6 54
discordia@6 55 private:
discordia@6 56
discordia@6 57 size_t N;
discordia@6 58 Node *list;
discordia@6 59
discordia@6 60 };
discordia@6 61
discordia@6 62
discordia@6 63
discordia@6 64 #endif
discordia@6 65