Marcus Lee / LinearArray
Committer:
UHSLMarcus
Date:
Wed Mar 01 10:35:15 2017 +0000
Revision:
3:8e9f85814809
Parent:
2:92576523c23e
Child:
4:7743528fb9e5
changed method names to match queues

Who changed what in which revision?

UserRevisionLine numberNew contents of line
UHSLMarcus 3:8e9f85814809 1 template<class type>
UHSLMarcus 3:8e9f85814809 2 LinearArray<type>::LinearArray(int size) :
UHSLMarcus 3:8e9f85814809 3 elem_count(0), array_size(size) {
UHSLMarcus 3:8e9f85814809 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 3:8e9f85814809 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 3:8e9f85814809 16 if (hasSpace()) {
UHSLMarcus 3:8e9f85814809 17 array[elem_count] = item;
UHSLMarcus 3:8e9f85814809 18 ret = elem_count;
UHSLMarcus 3:8e9f85814809 19 elem_increase();
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 3:8e9f85814809 26 type LinearArray<type>::pop(int index) {
UHSLMarcus 3:8e9f85814809 27
UHSLMarcus 3:8e9f85814809 28 type item = NULL;
UHSLMarcus 3:8e9f85814809 29
UHSLMarcus 3:8e9f85814809 30 if (index < elem_count) {
UHSLMarcus 3:8e9f85814809 31 for (int i = index; i < elem_count - 1; i++) {
UHSLMarcus 3:8e9f85814809 32 item = array[index];
UHSLMarcus 3:8e9f85814809 33 array[i] = array[i + 1];
UHSLMarcus 3:8e9f85814809 34 }
UHSLMarcus 3:8e9f85814809 35
UHSLMarcus 3:8e9f85814809 36 elem_decrease();
UHSLMarcus 3:8e9f85814809 37 }
UHSLMarcus 3:8e9f85814809 38
UHSLMarcus 3:8e9f85814809 39 return item;
UHSLMarcus 3:8e9f85814809 40
UHSLMarcus 1:49758f1e1317 41 }
UHSLMarcus 1:49758f1e1317 42
UHSLMarcus 3:8e9f85814809 43 template<class type>
UHSLMarcus 3:8e9f85814809 44 type& LinearArray<type>::peek(int index) {
UHSLMarcus 3:8e9f85814809 45
UHSLMarcus 3:8e9f85814809 46 type item = NULL;
UHSLMarcus 3:8e9f85814809 47
UHSLMarcus 3:8e9f85814809 48 if (index < elem_count) {
UHSLMarcus 3:8e9f85814809 49 item = array[index];
UHSLMarcus 3:8e9f85814809 50 }
UHSLMarcus 3:8e9f85814809 51
UHSLMarcus 3:8e9f85814809 52 return item;
UHSLMarcus 3:8e9f85814809 53
UHSLMarcus 1:49758f1e1317 54 }
UHSLMarcus 1:49758f1e1317 55
UHSLMarcus 3:8e9f85814809 56 template<class type>
UHSLMarcus 1:49758f1e1317 57 int LinearArray<type>::size() {
UHSLMarcus 3:8e9f85814809 58 return array_size;
UHSLMarcus 1:49758f1e1317 59 }
UHSLMarcus 1:49758f1e1317 60
UHSLMarcus 3:8e9f85814809 61 template<class type>
UHSLMarcus 1:49758f1e1317 62 int LinearArray<type>::elements() {
UHSLMarcus 3:8e9f85814809 63 return elem_count;
UHSLMarcus 3:8e9f85814809 64 }
UHSLMarcus 3:8e9f85814809 65
UHSLMarcus 3:8e9f85814809 66 template<class type>
UHSLMarcus 3:8e9f85814809 67 bool LinearArray<type>::hasSpace() {
UHSLMarcus 3:8e9f85814809 68 return elem_count < array_size;
UHSLMarcus 1:49758f1e1317 69 }
UHSLMarcus 1:49758f1e1317 70
UHSLMarcus 3:8e9f85814809 71 template<class type>
UHSLMarcus 3:8e9f85814809 72 bool LinearArray<type>::empty() {
UHSLMarcus 3:8e9f85814809 73 return elem_count == 0;
UHSLMarcus 1:49758f1e1317 74 }
UHSLMarcus 1:49758f1e1317 75
UHSLMarcus 3:8e9f85814809 76
UHSLMarcus 3:8e9f85814809 77 template<class type>
UHSLMarcus 3:8e9f85814809 78 int LinearArray<type>::elem_decrease() {
UHSLMarcus 3:8e9f85814809 79 return (elem_count = (elem_count - 1) < 0 ? 0 : elem_count - 1);
UHSLMarcus 1:49758f1e1317 80 }
UHSLMarcus 3:8e9f85814809 81
UHSLMarcus 3:8e9f85814809 82 template<class type>
UHSLMarcus 3:8e9f85814809 83 int LinearArray<type>::elem_increase() {
UHSLMarcus 3:8e9f85814809 84
UHSLMarcus 3:8e9f85814809 85 return (elem_count = (elem_count + 1) > array_size ? array_size : elem_count + 1);
UHSLMarcus 3:8e9f85814809 86 }