-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSequence.hpp
16 lines (16 loc) · 975 Bytes
/
Sequence.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#pragma once
template <class T> class Sequence
{
public:
virtual T GetFirst() const = 0;
virtual T GetLast() const = 0;
virtual T Get(int index) const = 0;
virtual Sequence<T>* GetSubsequence(int startIndex, int endIndex) const = 0;
virtual int GetLength() const = 0;
virtual bool IsEmpty() const = 0;
virtual void Append(T item) = 0;
virtual void Prepend(T item) = 0;
virtual void InsertAt(int index, T item) = 0;
virtual Sequence<T>* Concat(Sequence<T>* list) = 0;
virtual void Remove(int index) = 0;
};