Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- template <typename TElement>
- class Sequence {
- protected:
- int length;
- bool isEmpty;
- public:
- Sequence();
- ~Sequence();
- virtual TElement Get (int index) = 0;
- virtual TElement GetFirst() = 0;
- virtual TElement GetLast () = 0;
- virtual Sequence<TElement> GetSubsequence (int startIndex, int endIndex) = 0;
- virtual void Append (TElement item) = 0;
- virtual void Prepend (TElement item) = 0;
- virtual void InsertAt (int index, TElement item) = 0;
- virtual void Remove (TElement item) = 0;
- };
- template <typename TElement>
- class ArraySequence : Sequence<TElement> {
- private:
- TElement *Array;
- public:
- ArraySequence();
- ~ArraySequence();
- TElement Get (int index);
- TElement GetFirst();
- TElement GetLast ();
- Sequence<TElement> GetSubsequence (int startIndex, int endIndex);
- void Append (TElement item);
- void Prepend (TElement item);
- void InsertAt (int index, TElement item);
- void Remove (TElement item);
- };
- template <typename TElement>
- ArraySequence<TElement>::ArraySequence() {
- Array = new TElement;
- }
- template <typename TElement>
- ArraySequence<TElement>::~ArraySequence() {
- delete [] Array;
- }
- template <typename TElement>
- TElement ArraySequence<TElement>:: Get (int index) {
- return Array[index];
- }
- template <typename TElement>
- TElement ArraySequence<TElement>:: GetFirst () {
- return Array[0];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement