Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

C++ Programming: IMPLEMENTING AN ORDERED LIST WITH A BINARY SEARCH TREE INTRODUCTION An ordered list is a sequence of elements, all of the same type,

C++ Programming:

IMPLEMENTING AN ORDERED LIST WITH A BINARY SEARCH TREE

INTRODUCTION

An ordered list is a sequence of elements, all of the same type, that is ordered by the elements' values. A binary search tree (BST) is a binary tree in which the value at each node is greater than the values in its left subtree and less than the values in its right subtree. This project revisits Project 3, in which an ordered list was implemented with a simple singly-linked list. Here, the same ordered list ADT is implemented using a BST; the new implementation is exercised in the original menu-driven client program.

DESCRIPTION

Design, write, test, and document a class that implements an ordered list type, and a program that exercises the class's list implementation. Implement the ordered list type using a pointer-based binary search tree. The elements of the class's lists are integers, but it should be easy to change this type.

The class should implement the following operations on ordered lists of its element type:

Initialize a list to be empty (the default constructor).

A destructor that deletes the dynamic memory in the tree that represents a list.

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: the number of values it contains.

Report whether or not a particular value is present in a list.

Write out the values in a list, in order, to an output stream.

The exercising program should be menu-driven and interactive, as in several of our earlier projects. The program will read and respond to commands that the user enters, as illustrated in the example below.

INPUT

The program will read commands to manipulate one list. These commands will consist of a letter followed sometimes by an integer. For example, the command "i 25" might tell the program to insert the value 25 into the list.

OUTPUT

The program will write to the terminal instructions and a menu of commands, and it will prompt for the user's input.

ERRORS

The program may assume that the input the user provides is correct; 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. 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? w -- Write out the list. h -- See this menu. q -- Quit. --> i 27 --> i 42 --> i 15 --> i 33 --> i 14 --> w The list 0: 14 15 27 33 42 --> r 33 --> w The 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. --> i 88 --> i 51 --> l The list contains 6 values. --> q 

This example does not illustrate everything the program might do under all circumstances; it is your responsibility to test all its features.

OTHER REQUIREMENTS

Use a typedef statement to specify the item type in the class's list type, so that the item type can be changed easily.

HINTS

Commands will consist of a letter sometimes followed by an integer. These can be easily read in with the extractor operator ">>".

Consider whether functions associated with the class should be member functions, friend functions, or nonmember functions.

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

Recommended Textbook for

Upgrading Oracle Databases Oracle Database New Features

Authors: Charles Kim, Gary Gordhamer, Sean Scott

1st Edition

B0BL12WFP6, 979-8359657501

More Books

Students also viewed these Databases questions

Question

4. Develop a self-directed learning module.

Answered: 1 week ago

Question

What are the Five Phases of SDLC? Explain each briefly.

Answered: 1 week ago

Question

How can Change Control Procedures manage Project Creep?

Answered: 1 week ago