Question
Need it in C++ LANGUAGE TITLE IMPLEMENTING A LINKED LIST WITH RECURSIVE FUNCTIONS INTRODUCTION The linked list operations implemented in Project 3 that involved iteration
Need it in C++ LANGUAGE
TITLE
IMPLEMENTING A LINKED LIST WITH RECURSIVE FUNCTIONS
INTRODUCTION
The linked list operations implemented in Project 3 that involved iteration (loops) can also be implemented recursively. This project modifies the previous one by carrying out those operations using recursion.
DESCRIPTION
Modify the List class in Project 3 to carry out repetitive operations recursively. These operations include:
- Dispose of the dynamic part of a List structure (the destructor).
- Re-initialize an existing List to be empty.
- Insert a value into a List in the appropriate position. If the value is already present, the List is unchanged.
- Remove a value from a List. If the value is not present, the List is unchanged.
- Return the length of a List.
- Report whether or not a particular value is present in a List.
- Return the value of the kth element of a List.
- Write out the values in a List, in order, to an output stream.
The remaining operations are unchanged.
The client program is also unchanged; only the List class is modified.
INPUT
As in Project 3
OUTPUT
As in Project 3
ERRORS
As in Project 3
EXAMPLE
As in Project 3
OTHER REQUIREMENTS
As in Project 3
HINTS
The smaller problem is always the "tail" of the List.
Project 3
TITLE
IMPLEMENTING AN ORDERED LIST CLASS WITH A LINKED LIST
INTRODUCTION
An ordered list is a sequence of elements, all of the same type, that is ordered by the elements' values. For example, <15, 22, 24, 29, 33, 42> is an ordered list of integers. Many kinds of data might be organized into ordered lists, and we often manipulate such structures in programs. This project uses a class to implement an ordered list type and exercises that implementation.
DESCRIPTION
This project breaks neatly into two parts. First, implement an ordered list type in a class using a linked list, as we have described. You needn't consider how the list will be used until this step is complete. The elements of the class's lists will be integers, but it should be easy to change this type.
Second, design and write a program that exercises and tests the class's list implementation. The exercising program should be menu-driven and interactive. The program will read and respond to commands that the user enters. It will manipulate an ordered list of integers provided by the List class.
INPUT
The program reads commands to manipulate its List. These commands consist of a letter followed perhaps by one integer. For example, the command "i 25" might tell the program to insert the value 25 into the List.
OUTPUT
The program writes to the terminal instructions and a menu of commands, and it prompts for the user's input.
ERRORS
The program may assume that the input the user provides is correct; except that it will report if a position is beyond the end of a list (See the example below). Otherwise, it need not detect any errors.
EXAMPLE
A run of the program might look something like this:
This program responds to commands the user enters to manipulate an ordered list of integers, which is initially empty. In the following commands, v is any integer, and p is a position in the list. e -- Re-initialize the list to be empty. i v -- Insert the value v into the list. r v -- Remove the value v from the list. l -- Report the length of the list. p v-- Is the value v present in the list? k n -- Report the nth value of the list. w -- Write out the list. h -- See this menu. q -- Quit. --> i 27 --> i 42 --> i 15 --> i 33 --> i 14 --> w List: < 14, 15, 27, 33, 42 > --> r 33 --> w List: < 14, 15, 27, 42 > --> p 22 The value 22 is NOT present in the list. --> p 42 The value 42 is present in the list. --> k 3 The 3th element of the list is 27. --> k 9 The list does not contain 9 values. --> q
This example does not illustrate everything the program might do; show tests of all its features.
OTHER REQUIREMENTS
Use a typedef statement to specify the item type in the class's lists, so that this type can be changed easily.
Represent the elements of a list in a linked list.
Maintain a list's elements in order in its linked list; this is part of the invariant of the implementation. To write out a list, overwrite the inserter operator (<<).
Consider carefully whether functions associated with the class should be member functions, friend functions, or nonmember functions.
Present more tests than those listed here.
HINTS
Commands will consist of a letter followed perhaps by an integer. These can be easily read in with the extractor operator ">>".
HAND IN
See About Programming Projects for a description of what to hand in: design document, code, user document, tests, and summary. Include in the summary an answer to the following
Question: Suggest another ordered list operation that a class like this might reasonably provide.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started