Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

C++ assignment Part A: Sketching a linked list data structure Draw a sketch of a singly linked list after the following code is executed. Remember

C++ assignment

Part A: Sketching a linked list data structure

Draw a sketch of a singly linked list after the following code is executed. Remember to sketch the head pointer, each node, and each node's contents.

SLinkedList words;

words.addFront(we);

words.addFront(are);

words.removeFront();

words.addFront(the);

words.addFront(people);

Part B: iterating through a linked list:

For the Singly-Linked List class at:

// Code from: // Data Structures and Algorithms in C++, Goodrich, Tamassia, and Mount, 2nd Ed., 2011. // #pragma once #include  using namespace std; template  class SLinkedList; // forward declaration to be used when declaring SNode template  class SNode { // singly linked list node private: E elem; // linked list element value SNode *next; // next item in the list friend class SLinkedList; // provide SLinkedList access }; template  class SLinkedList { // a singly linked list public: SLinkedList(); // empty list constructor ~SLinkedList(); // destructor bool empty() const; // is list empty? E& front(); // return front element void addFront(const E& e); // add to front of list void removeFront(); // remove front item list int size() const; // list size private: SNode* head; // head of the list int n; // number of items }; template  SLinkedList::SLinkedList() // constructor : head(NULL), n(0) { } template  bool SLinkedList::empty() const // is list empty? { return head == NULL; // can also use return (n == 0); } template  E& SLinkedList::front() // return front element { if (empty()) throw length_error("empty list"); return head->elem; } template  SLinkedList::~SLinkedList() // destructor { while (!empty()) removeFront(); } template  void SLinkedList::addFront(const E& e) { // add to front of list SNode* v = new SNode; // create new node v->elem = e; // store data v->next = head; // head now follows v head = v; // v is now the head n++; } template  void SLinkedList::removeFront() { // remove front item if (empty()) throw length_error("empty list"); SNode* old = head; // save current head head = old->next; // skip over old head delete old; // delete the old head n--; } template  int SLinkedList::size() const { // list size return n; } 

Add a function/method called "printEveryOther" that prints every other element starting from the first. The function should throw an exception for possible error cases. Show only this new function. (Note: you can test your code by calling this function from the main function).

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions

Question

3-27. General purpose:

Answered: 1 week ago