Advertisement
amsavchenko

Untitled

Sep 7th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. template <typename TElement>
  7. class Sequence {
  8. protected:
  9. int length;
  10. bool isEmpty;
  11. public:
  12. Sequence();
  13. ~Sequence();
  14. virtual TElement Get (int index) = 0;
  15. virtual TElement GetFirst() = 0;
  16. virtual TElement GetLast () = 0;
  17. virtual Sequence<TElement> GetSubsequence (int startIndex, int endIndex) = 0;
  18. virtual void Append (TElement item) = 0;
  19. virtual void Prepend (TElement item) = 0;
  20. virtual void InsertAt (int index, TElement item) = 0;
  21. virtual void Remove (TElement item) = 0;
  22.  
  23. };
  24.  
  25. template <typename TElement>
  26. class ArraySequence : Sequence<TElement> {
  27. private:
  28. TElement *Array;
  29. public:
  30. ArraySequence();
  31. ~ArraySequence();
  32. TElement Get (int index);
  33. TElement GetFirst();
  34. TElement GetLast ();
  35. Sequence<TElement> GetSubsequence (int startIndex, int endIndex);
  36. void Append (TElement item);
  37. void Prepend (TElement item);
  38. void InsertAt (int index, TElement item);
  39. void Remove (TElement item);
  40. };
  41.  
  42. template <typename TElement>
  43. ArraySequence<TElement>::ArraySequence() {
  44. Array = new TElement;
  45. }
  46.  
  47. template <typename TElement>
  48. ArraySequence<TElement>::~ArraySequence() {
  49. delete [] Array;
  50. }
  51.  
  52. template <typename TElement>
  53. TElement ArraySequence<TElement>:: Get (int index) {
  54. return Array[index];
  55. }
  56.  
  57. template <typename TElement>
  58. TElement ArraySequence<TElement>:: GetFirst () {
  59. return Array[0];
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement