WEEK 2: LAB OVERVIEW
Table of Contents
The purpose of the Lab exercises is to help the student acquire skills in developing programs that require the implementation with linked lists of abstract data types, such as lists and bags.
There are four exercises in this Lab, although not all of them will be required for submission. Be sure to read the following instructions carefully.
• Exercise 1: No submission is required.
• Exercise 3 contains parts a, b, c and continues through part i. Keep in mind that the methods developed for each of these parts should be within the same Bag class.
• Create a folder and name it Week 2 Lab. Inside this folder, create the subfolders Ex2, Ex3, and Ex4. Place the solution to each of the three exercises required for submission in the corresponding subfolder. Compress the folder Week 2 Lab, and drop the resulting zipped folder into the Dropbox.
• Note that Exercises 2, 3, and 4 require software development. For each of them, place in the corresponding folder the source code files (i.e., .h and .cpp files) you created, and a screenshot of the execution window. Do not submit other files or folders, including those automatically generated by the IDE.
Use a personal copy or access the software at https://lab.devry.edu (Links to an external site.)Links to an external site..
Exercise 1: Lesson Review—Linked Lists
Create three projects, A Simple Linked List Class, Using the STL List, and Iterators, using the programs in the following.
• A Simple Linked List Class (Links to an external site.)Links to an external site.
• STL List (Links to an external site.)Links to an external site.
• Iterators (Links to an external site.)Links to an external site.
Compile the three projects, run them, and review the code that is given carefully. These programs test the code discussed in the lesson.
Exercise 2: Implementing a Doubly Linked List
Modify the class Linked List in Exercise 1 to make it a Doubly Linked List. Name your class DoublyLinkedList. Add a method addEnd to add an integer at the end of the list and a method displayInReverse to print the list backwards.
void addEnd(int x): create this method to add x to the end of the list.
void displayInReverse(): create this method to display the list elements from the last item to the first one.
Create a main() function to test your DoublyLinkedList class.
Exercise 3: Implementing a Bag Class With a Linked List
Create a class Bag that uses a linked list to store the bag items. The item type must be char. The class should have the methods listed below. Create a main() that will store in a bag object a fixed number of characters entered by the program user. After the input is completed, the program should modify the bag content so that it does not contain any duplicate characters, if duplicates were entered. For example, if the user entered ‘M’ ‘I’ ‘S’ ‘S’ ‘I’ ‘S’ ‘S’ ‘I’ ‘P’ ‘P’ ‘I’, the characters remaining in the bag after the removal of duplicates would be ‘M’ ‘I’ ‘S’ ‘P’.
a. Bag(): default constructor
b. ~Bag(): class destructor
c. bool isEmpty(): determines whether the bag is empty
d. void print(): prints the bag elements
e. int getSize(): returns the number of items in the bag
f. void clear(): removes all of the items from the bag
g. void add(char item): adds an item to the bag
h. void remove(char item): removes an item from the bag; only one occurrence of the item should be removed.
i. int count(char item): counts the number of occurrences of an item in the bag.
(Note that you can reuse the code in Exercise 1 for the LinkedList class to create your Bag class. It will help you to save development time.)
Exercise 4: Using the C++ STL List
Write a program that fills a STL list object with 10 random integers, each in the interval [0, 20], and prints how many times each integer in the interval [0, 20] appears in the list.