This is a three-part exercise that involves modifying the implementation of
slist
. The original code for
slist
is also available in a file named slist.cpp, which can be found in the compressed course download file available on the
Resources page.
Modify the
slist::del()
to test for an empty list.
If the list is empty, continue processing. As written,
slist::del()
expects a non-empty list. This can cause problems if the list is empty. You could use
assert
to test for an empty list, but this will cause the program to abort. Add a constructor to
slistelem
and use it to simplify the coding of the
prepend()
member function. If we have a constructor for
slistelem
, the
prepend()
member function could be simplified like this:
void slist::prepend(char c)
{
slistelem* temp = new slistelem(c, h); //create element
h = temp;
}
Notice that the
new
of
slistelem(c, h)
calls the constructor to initialize the
c
and
h
variables. Write a member function
append
that will add a list to the end of the implicit list argument (i.e., the original list), then clear the appended list by zeroing the head. You will also need to write a function
unhook
to zero the head.
void slist::append(slist& e);
void slist::unhook() { h = 0; }
Paste the source code of the
slist class
and its external member functions below and click the
Submit button when you are ready to submit this exercise.