Marcus Lee / LinearArray
Committer:
UHSLMarcus
Date:
Wed Mar 08 10:59:06 2017 +0000
Revision:
7:6e24d8ccecd4
Parent:
6:314f180362cb
Child:
8:18c9d62b8f7c
Another member name

Who changed what in which revision?

UserRevisionLine numberNew contents of line
UHSLMarcus 3:8e9f85814809 1 template<class type>
UHSLMarcus 5:0f65cdadb1a4 2 LinearArray<type>::LinearArray(int size, bool forced) :
UHSLMarcus 5:0f65cdadb1a4 3 _elem_count(0), _array_size(size), _front(0), _rear(-1), _forced(forced) {
UHSLMarcus 5:0f65cdadb1a4 4 _array = new type[size];
UHSLMarcus 3:8e9f85814809 5 }
UHSLMarcus 1:49758f1e1317 6
UHSLMarcus 3:8e9f85814809 7 template<class type>
UHSLMarcus 3:8e9f85814809 8 LinearArray<type>::~LinearArray() {
UHSLMarcus 5:0f65cdadb1a4 9 delete[] _array;
UHSLMarcus 1:49758f1e1317 10 }
UHSLMarcus 1:49758f1e1317 11
UHSLMarcus 3:8e9f85814809 12 template<class type>
UHSLMarcus 3:8e9f85814809 13 int LinearArray<type>::push(type item) {
UHSLMarcus 3:8e9f85814809 14
UHSLMarcus 3:8e9f85814809 15 int ret = -1;
UHSLMarcus 7:6e24d8ccecd4 16 if (_elem_count < _array_size) {
UHSLMarcus 5:0f65cdadb1a4 17 if (_rear == _array_size - 1) _rear = -1;
UHSLMarcus 5:0f65cdadb1a4 18 _array[++_rear] = item;
UHSLMarcus 6:314f180362cb 19 ret = _elem_count++;
UHSLMarcus 3:8e9f85814809 20 }
UHSLMarcus 3:8e9f85814809 21
UHSLMarcus 3:8e9f85814809 22 return ret;
UHSLMarcus 1:49758f1e1317 23 }
UHSLMarcus 1:49758f1e1317 24
UHSLMarcus 3:8e9f85814809 25 template<class type>
UHSLMarcus 5:0f65cdadb1a4 26 type& LinearArray<type>::pop() {
UHSLMarcus 5:0f65cdadb1a4 27
UHSLMarcus 5:0f65cdadb1a4 28 type item = NULL;
UHSLMarcus 5:0f65cdadb1a4 29
UHSLMarcus 7:6e24d8ccecd4 30 if (_elem_count > 0) {
UHSLMarcus 5:0f65cdadb1a4 31 item = _array[_front++];
UHSLMarcus 5:0f65cdadb1a4 32 if (_front == _array_size) _front = 0;
UHSLMarcus 6:314f180362cb 33 _elem_count--;
UHSLMarcus 5:0f65cdadb1a4 34 }
UHSLMarcus 5:0f65cdadb1a4 35
UHSLMarcus 5:0f65cdadb1a4 36 return item;
UHSLMarcus 5:0f65cdadb1a4 37
UHSLMarcus 5:0f65cdadb1a4 38 }
UHSLMarcus 5:0f65cdadb1a4 39
UHSLMarcus 5:0f65cdadb1a4 40 template<class type>
UHSLMarcus 4:7743528fb9e5 41 type& LinearArray<type>::peek() {
UHSLMarcus 3:8e9f85814809 42
UHSLMarcus 3:8e9f85814809 43 type item = NULL;
UHSLMarcus 3:8e9f85814809 44
UHSLMarcus 5:0f65cdadb1a4 45 if (_front <= _rear) {
UHSLMarcus 5:0f65cdadb1a4 46 item = _array[_front];
UHSLMarcus 3:8e9f85814809 47 }
UHSLMarcus 3:8e9f85814809 48
UHSLMarcus 3:8e9f85814809 49 return item;
UHSLMarcus 3:8e9f85814809 50
UHSLMarcus 1:49758f1e1317 51 }
UHSLMarcus 1:49758f1e1317 52
UHSLMarcus 3:8e9f85814809 53 template<class type>
UHSLMarcus 1:49758f1e1317 54 int LinearArray<type>::size() {
UHSLMarcus 5:0f65cdadb1a4 55 return _array_size;
UHSLMarcus 1:49758f1e1317 56 }
UHSLMarcus 1:49758f1e1317 57
UHSLMarcus 3:8e9f85814809 58 template<class type>
UHSLMarcus 4:7743528fb9e5 59 int LinearArray<type>::count() {
UHSLMarcus 6:314f180362cb 60 return _elem_count;
UHSLMarcus 3:8e9f85814809 61 }
UHSLMarcus 3:8e9f85814809 62
UHSLMarcus 3:8e9f85814809 63 template<class type>
UHSLMarcus 4:7743528fb9e5 64 bool LinearArray<type>::full() {
UHSLMarcus 6:314f180362cb 65 return _elem_count == _array_size;
UHSLMarcus 1:49758f1e1317 66 }