[SOLVED] 02393 Assignment 4-Fun with bags

29.99 $

Category: Tags: , , , , ,

Description

5/5 - (1 vote)

 

Fun with bags

This assignment is about processing a sequence of commands related to a bag of numbers. Your program has to read a sequence of commands from cin and provide some reply to cout. The commands are:

add x: number x must be added to the bag. No output to be provided;
del x: if there is an element x in the bag, remove it, otherwise do nothing. No

output to be provided;
qry x: if x belongs to the bag then output T, otherwise output F; quit: stop your program.

The goal of the three exercises is always the same (reply to the input, as- suming an initially empty bag) but the nature of the bag (set or multiset) and the members of the bag (integers or reals) vary. In particular,

Fun with bags 1: Here you have to consider that the bag is a set of int values. Example:

input: add 1 add 2 add 1 del 1 qry 1 qry 2 quit output: FT

Fun with bags 2: Here you have to consider that the bag is a multiset of int values. The main difference with respect to the previous exercise is that now repetitions are allowed. This means, for example, that deleting x just removes one occurrence of x from the multiset.

Example:
input: add 1 add 2 add 1 del 1 qry 1 qry 2 quit output: TT

Fun with bags 3 Here you have to consider that the bag is a multiset of double values. Example:

input: add 3.14 add 3.1415 del 3.14 qry 3.1415 qry 3.14 quit output: TF

You can solve this exercise using several data structures:

Arrays: Use arrays if you feel that you need to test your ability to deal with arrays. Exercises 1 and 2 should be easy, while Exercise 3 is an exam- ple showing some limitations/inconveniences of using arrays to implement bags.

Containers: We will properly introduce containers later in the course, but you can already try to use them to get a first feeling of how convenient they are with respect to array-based structures. In particular, you could consider these two classes of containers:

• http://en.cppreference.com/w/cpp/container/set
• http://en.cppreference.com/w/cpp/container/multiset

Hint: for every command of the exercise, there is a method/function that does (almost) what you need.

2