Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

The goal of this assignment is to reinforce implementation of dynamic arrays in C++. Specifically, the assignment is to implement a set using a dynamic

The goal of this assignment is to reinforce implementation of dynamic arrays in C++. Specifically, the assignment is to implement a set using a dynamic array. You need to implement the following set operations

  • union

  • intersection

  • relative complement

  • insertion - if the element is already in the set, then nothing happens

  • deletion - if the element is not in the set, then nothing happens

  • query to check whether an element is in a set

  • query to find the number of number of elements in a set

  • display the set

  • destructor

  • copy constructor

  • overloading assignment operator

The assignment must follow the author's guidelines of preconditions and postconditions for the functions. In addition, the efficiency of each function must be stated. set.h

#ifndef _SET_H #define _SET_H

#include #include

class set { public: typedef int value_type; typedef std::size_t size_type; static const size_type INITIAL_CAPACITY = 30;

set(size_type initial_capacity = INITIAL_CAPACITY); // postcondition: empty set has been created

~set(); // postcondition: set has been deallocated set (const set& source); // postcondition: a copy of source has been created

set& operator = (const set& source); // postcondition: void insert (const value_type& entry); // postcondition: entry is in the set

void remove (const value_type& entry); // postcondition: entry is not in the set

size_type size() const; // postcondition: number of elements in the set has been returned

bool contains (const value_type& entry) const; // postcondition: whether entry is in the set has been returned

friend set set_union (const set& s1, const set& s2); //postcondition: union of s1 & s2 has been returned

friend set set_intersection (const set& s1, const set& s2); // postcondition: intersection of s1 & s2 has been returned

friend set set_difference (const set& s1, const set& s2); // postcondition: difference of s1 - s2 has been returned

friend bool is_subset (const set& s1, const set& s2); // postcondition: returned whether s1 is a subset of s2

friend bool operator == (const set& s1, const set& s2); // postcondition: returned whether s1 & s2 are equal

friend std::ostream& operator << (std::ostream& output, const set& s); // postcondition: s has been displayed on output

private: size_type find (const value_type& entry) const; // returned location of entry in the set if entry is in the set - used otherwise void resize (unsigned int new_size); value_type* data; size_type used; size_type capacity; };

#endif test_set.cpp

#include "set.h" #include #include

int main () { set s; assert (!s.contains (7)); s.insert (7); assert (s.contains (7)); s.remove (7); assert (!s.contains (7)); set s1; s1.insert (4); s1.insert (5); s1.insert (-24); s1.insert (89); s1.insert (34); s1.insert (11); s1.insert (0); s1.insert (3); s1.insert (14); s1.insert (28); std::cout << s1 << std::endl;

set s2; s2.insert (6); s2.insert (-5); s2.insert (-24); s2.insert (-89); s2.insert (34); s2.insert (-11); s2.insert (0); s2.insert (3); std::cout << s2 << std::endl;

set s3 = set_union (s1, s2); assert (s3.contains (4)); assert (s3.contains (0)); assert (s3.contains (-5)); std::cout << s3 << std::endl;

set s4 = set_intersection (s1, s2); assert (s4.contains (34)); assert (!s4.contains (4)); assert (!s4.contains (-5)); std::cout << s4 << std::endl;

set s5 = set_difference (s1, s2); assert (s5.contains (4)); assert (!s5.contains (0)); assert (!s5.contains (-5)); std::cout << s5 << std::endl;

assert (is_subset (s5, s1));

set s6(s2); assert (s6 == s2); std::cout << "all tests passed" << std::endl; return 0; }

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

Object Databases The Essentials

Authors: Mary E. S. Loomis

1st Edition

020156341X, 978-0201563412

More Books

Students also viewed these Databases questions

Question

Why do you add comments?

Answered: 1 week ago