Having trouble with creating the InsertAtEnd function in the ItemNode.h file below.  "    // TODO: Define InsertAtEnd() function that inserts a node     //       to the end of the linked list" Given main(), define an InsertAtEnd() member function in the ItemNode class that adds an element to the end of a linked list. DO NOT print the dummy head node. Ex. if the input is: 4 Kale Lettuce Carrots Peanuts  ------------------------------------------------------- main.cpp -------------------------------------------------------- #include "ItemNode.h" int main() {     ItemNode *headNode;  // Create intNode objects                                                        ItemNode *currNode;     ItemNode *lastNode;     string item;     int i;     int input;     // Front of nodes list                                                                              headNode = new ItemNode();     lastNode = headNode;     cin >> input;     for (i = 0; i < input; i++) {         cin >> item;         currNode = new ItemNode(item);         lastNode->InsertAtEnd(currNode);         lastNode = currNode;     }     // Print linked list                                                                                currNode = headNode->GetNext();     while (currNode != NULL) {         currNode->PrintNodeData();         currNode = currNode->GetNext();     } } ----------------------------------------------------------- #ItemNode.h ------------------------------------------------- include #include using namespace std; class ItemNode { private:     string item;     ItemNode* nextNodeRef; public:     // Constructor     ItemNode() {         item = "";         nextNodeRef = NULL;     }     // Constructor                                                                                          ItemNode(string itemInit) {         this->item = itemInit;         this->nextNodeRef = NULL;     }     // Constructor            ItemNode(string itemInit, ItemNode *nextLoc) {       this->item = itemInit;       this->nextNodeRef = nextLoc;    }     // Insert node after this node.         void InsertAfter(ItemNode &nodeLoc) {       ItemNode* tmpNext;              tmpNext = this->nextNodeRef;       this->nextNodeRef = &nodeLoc;       nodeLoc.nextNodeRef = tmpNext;    }          // TODO: Define InsertAtEnd() function that inserts a node     //       to the end of the linked list          // Get location pointed by nextNodeRef                                                                  ItemNode* GetNext() {         return this->nextNodeRef;     }     void PrintNodeData() {         cout << this->item << endl;     } };

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

Having trouble with creating the InsertAtEnd function in the ItemNode.h file below. 

"    // TODO: Define InsertAtEnd() function that inserts a node
    //       to the end of the linked list"

Given main(), define an InsertAtEnd() member function in the ItemNode class that adds an element to the end of a linked list. DO NOT print the dummy head node.

Ex. if the input is:

4

Kale

Lettuce

Carrots

Peanuts 

-------------------------------------------------------
main.cpp
--------------------------------------------------------

#include "ItemNode.h"

int main() {
    ItemNode *headNode;  // Create intNode objects                                                   
    ItemNode *currNode;
    ItemNode *lastNode;

    string item;
    int i;
    int input;

    // Front of nodes list                                                                         
    headNode = new ItemNode();
    lastNode = headNode;

    cin >> input;

    for (i = 0; i < input; i++) {
        cin >> item;
        currNode = new ItemNode(item);
        lastNode->InsertAtEnd(currNode);
        lastNode = currNode;
    }

    // Print linked list                                                                           
    currNode = headNode->GetNext();
    while (currNode != NULL) {
        currNode->PrintNodeData();
        currNode = currNode->GetNext();
    }
}

-----------------------------------------------------------

#ItemNode.h

-------------------------------------------------

include <iostream>
#include <string>
using namespace std;

class ItemNode {
private:
    string item;
    ItemNode* nextNodeRef;

public:
    // Constructor
    ItemNode() {
        item = "";
        nextNodeRef = NULL;
    }

    // Constructor                                                                                     
    ItemNode(string itemInit) {
        this->item = itemInit;
        this->nextNodeRef = NULL;
    }

    // Constructor        
   ItemNode(string itemInit, ItemNode *nextLoc) {
      this->item = itemInit;
      this->nextNodeRef = nextLoc;
   }

    // Insert node after this node.     
   void InsertAfter(ItemNode &nodeLoc) {
      ItemNode* tmpNext;
      
      tmpNext = this->nextNodeRef;
      this->nextNodeRef = &nodeLoc;
      nodeLoc.nextNodeRef = tmpNext;
   }
    
    // TODO: Define InsertAtEnd() function that inserts a node
    //       to the end of the linked list
    

    // Get location pointed by nextNodeRef                                                             
    ItemNode* GetNext() {
        return this->nextNodeRef;
    }

    void PrintNodeData() {
        cout << this->item << endl;
    }
};

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps

Blurred answer
Knowledge Booster
Linked List Representation
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-engineering and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY