Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template <typename T>
- T LinkedList<T> :: getItem(int i) {
- if (i < 0 || i >= size) {
- throw std::runtime_error("Attempted to getItem out of bounds.");
- }
- LinkedListNode <T>* current = head;
- for (int j=0; j=i; j++) {
- current = current->getNext();
- }
- return current->getValue();
- }
- template <typename T>
- void LinkedList<T> :: insertAtHead(T value) {
- LinkedListNode <T>* newnode = new LinkedListNode <T> (value);
- if (isEmpty() == true) {
- head = newnode;
- tail = newnode;
- } else {
- newnode->setNext(head);
- head = newnode;
- }
- ++ size;
- delete newnode;
- }
- template <typename T>
- void LinkedList<T> :: insertAtTail(T value) {
- LinkedListNode <T>* newnode = new LinkedListNode <T> (value);
- if (isEmpty() == true) {
- tail = newnode;
- head = newnode;
- } else {
- tail->setNext(newnode);
- tail = newnode;
- }
- ++ size;
- delete newnode;
- }
- template <typename T>
- T LinkedList<T> :: removeHead() {
- T value;
- if (isEmpty() == true) {
- throw std::runtime_error("Attempted to removeHead on an empty list.");
- } else {
- LinkedListNode <T>* newhead = head->getNext();
- value = head->getValue();
- delete head;
- head = newhead;
- }
- -- size;
- return value;
- }
- template <typename T>
- T LinkedList<T> :: removeTail() {
- T value;
- if (isEmpty() == true) {
- throw std::runtime_error("Attempted to removeTail on an empty list.");
- } else {
- LinkedListNode <T>* current = head;
- for (int j=0; j=size-2; j++) {
- current = current->getNext();
- }
- delete tail;
- tail = current;
- tail->getNext(NULL);
- value = tail->getValue();
- }
- -- size;
- return size;
Add Comment
Please, Sign In to add comment