Guest User

Untitled

a guest
Jan 18th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. template <typename T>
  2. T LinkedList<T> :: getItem(int i) {
  3. if (i < 0 || i >= size) {
  4. throw std::runtime_error("Attempted to getItem out of bounds.");
  5. }
  6. LinkedListNode <T>* current = head;
  7. for (int j=0; j=i; j++) {
  8. current = current->getNext();
  9. }
  10. return current->getValue();
  11. }
  12.  
  13. template <typename T>
  14. void LinkedList<T> :: insertAtHead(T value) {
  15. LinkedListNode <T>* newnode = new LinkedListNode <T> (value);
  16. if (isEmpty() == true) {
  17. head = newnode;
  18. tail = newnode;
  19. } else {
  20. newnode->setNext(head);
  21. head = newnode;
  22. }
  23. ++ size;
  24. delete newnode;
  25. }
  26.  
  27. template <typename T>
  28. void LinkedList<T> :: insertAtTail(T value) {
  29. LinkedListNode <T>* newnode = new LinkedListNode <T> (value);
  30. if (isEmpty() == true) {
  31. tail = newnode;
  32. head = newnode;
  33. } else {
  34. tail->setNext(newnode);
  35. tail = newnode;
  36. }
  37. ++ size;
  38. delete newnode;
  39. }
  40.  
  41. template <typename T>
  42. T LinkedList<T> :: removeHead() {
  43. T value;
  44. if (isEmpty() == true) {
  45. throw std::runtime_error("Attempted to removeHead on an empty list.");
  46. } else {
  47. LinkedListNode <T>* newhead = head->getNext();
  48. value = head->getValue();
  49. delete head;
  50. head = newhead;
  51. }
  52. -- size;
  53. return value;
  54. }
  55.  
  56. template <typename T>
  57. T LinkedList<T> :: removeTail() {
  58. T value;
  59. if (isEmpty() == true) {
  60. throw std::runtime_error("Attempted to removeTail on an empty list.");
  61. } else {
  62. LinkedListNode <T>* current = head;
  63.  
  64. for (int j=0; j=size-2; j++) {
  65. current = current->getNext();
  66. }
  67.  
  68. delete tail;
  69. tail = current;
  70. tail->getNext(NULL);
  71. value = tail->getValue();
  72. }
  73. -- size;
  74. return size;
Add Comment
Please, Sign In to add comment