48 listItem<T>* listHead;
49 listItem<T>* currentlyAccessedItem;
56 : listHead(
nullptr), listSize(0), currentlyAccessedItem(
nullptr)
70 currentlyAccessedItem = listHead;
71 return &(listHead->storedItem);
80 if (currentlyAccessedItem ==
nullptr)
85 currentlyAccessedItem = currentlyAccessedItem->nextItem;
87 return &(currentlyAccessedItem->storedItem);
100 void add(T
const& newData)
104 listItem<T>* newItem =
new listItem<T>;
105 newItem->storedItem = newData;
107 listItem<T>* currentItem = listHead;
109 if (listHead ==
nullptr)
118 while (currentItem->nextItem !=
nullptr)
121 currentItem = currentItem->nextItem;
125 currentItem->nextItem = newItem;
137 listItem<T>* currentItem = listHead;
140 for (
int i = 0; i < index - 1; i++)
143 currentItem = currentItem->nextItem;
150 listItem<T>* temp = listHead;
151 listHead = listHead->nextItem;
156 listItem<T>* temp = currentItem->nextItem->nextItem;
158 delete currentItem->nextItem;
159 currentItem->nextItem = temp;
168 while (listSize != 0)
185 listItem<T>* currentItem = listHead;
187 listItem<T>* newItem =
new listItem<T>;
188 newItem->storedItem = newData;
191 for (
int i = 0; i < index - 1; i++)
194 currentItem = currentItem->nextItem;
198 listItem<T>* temp = currentItem->nextItem;
200 currentItem->nextItem = newItem;
201 newItem->nextItem = temp;
212 listItem<T>* currentItem = listHead;
214 for (
int i = 0; i < index; i++)
217 currentItem = currentItem->nextItem;
221 return (currentItem->storedItem);