Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. void DirectoryTree::Display()
  2. {
  3.     for( ForwardIterator<string> iter(&m_directories); !iter.IsDone(); iter.MoveNext() )
  4.     {
  5.         cout << iter.GetCurrent()->getData() << endl;
  6.     }
  7. }
  8.  
  9. ////////////////////////////////
  10.  
  11. #ifndef FORWARDITERATOR_H
  12. #define FORWARDITERATOR_H
  13.  
  14. //#include "ListIterator.h"
  15.  
  16. template < typename T >
  17. class ForwardIterator //: ListIterator<T>
  18. {
  19. public:
  20.     ForwardIterator( DoubleLinkedList<T> * linked_list );
  21.     void MoveNext();
  22.     void Reset();
  23.     bool IsDone();
  24.     Node<T> * GetCurrent();
  25. private:
  26.     Node<T> * m_start;
  27.     Node<T> * m_current;
  28. };
  29.  
  30. template < typename T >
  31. Node<T> * ForwardIterator<T>::GetCurrent()
  32. {
  33.     return m_current;
  34. }
  35.  
  36. template < typename T >
  37. bool ForwardIterator<T>::IsDone()
  38. {
  39.     return m_current == 0;
  40. }
  41.  
  42. template < typename T >
  43. void ForwardIterator<T>::Reset()
  44. {
  45.     m_current = m_start;
  46. }
  47.  
  48. template < typename T >
  49. void ForwardIterator<T>::MoveNext()
  50. {
  51.     m_current = m_current->getNext();
  52. }
  53.  
  54. template < typename T >
  55. ForwardIterator<T>::ForwardIterator( DoubleLinkedList<T> * linked_list )
  56. {
  57.     m_start = linked_list->getHead();
  58.     m_current = linked_list->getHead();
  59. }
  60.  
  61. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement