Concept explainers
(Modify BST using Comparator) Revise BST in Listing 25.4 using a Comparator for comparing objects. Define the new class as BST<E> with two constructors:
BST(); // Compare elements using their natural order
BST(Comparator<? super E> comparator)
Hint: You need to add a data field for Comparator in the BST class as follows:
protected Comparator<E> c = (e1, e2) ->
((Comparable<E>)e1).compareTo(e2);
The lambda expression gives the default comparator using a natural order. You need to use comparator c to replace e.compareTo(anotherElement) with c.compar(e, anotherElement) in Listing 25.4.
Want to see the full answer?
Check out a sample textbook solutionChapter 25 Solutions
Introduction to Java Programming and Data Structures, Comprehensive Version Plus MyProgrammingLab with Pearson EText -- Access Card Package
Additional Engineering Textbook Solutions
Software Engineering (10th Edition)
Java How To Program (Early Objects)
Digital Fundamentals (11th Edition)
Starting Out with Java: From Control Structures through Data Structures (3rd Edition)
Starting out with Visual C# (4th Edition)
C How to Program (8th Edition)
- Write code snippets that demonstrates i.) generic interface and generic constructorarrow_forwardPython Program: Auction Housearrow_forward(The Account class) Account -id: int -balance: double -annualInterestRate : double -dateCreated : Date +Account( ) +Account(someId : int, someBalance : double) +getId() : int +setId(newId : int) : void +getBalance() : double +setBalance(newBalance : double) : void +getAnnualInterestRate( ) : double +setAnnualInterestRate(newRate : double) : void +getDateCreated( ) : Date +getMonthlyInterestRate( ) : double +getMonthlyInterest( ) : double +withdraw(amt : double) : void +deposit(amt : double) : void Design a class named Account that contains: ■ A private int data field named id for the account (default 0). ■ A private double data field named balance for the account (default 0). ■ A private double data field named annualInterestRate that stores the current interest rate (default 0). Assume all accounts have the same interest rate. Make it static. ■ A private Date data field named dateCreated that stores the date when the account was created. (private Date dateCreated)…arrow_forward
- Question 2: (TicTacToe Class) Create a class TicTacToe that will enable you to write a complete program to play the game of tic-tac-toe. The class contains as private data a 3-by-3 two-dimensional array of integers. The constructor should initialize the empty board to all zeros. Allow two human players. Wherever the first player moves, place a 1 in the specified square. Place a 2 wherever the second player moves. Each move must be to an empty square. After each move, determine whether the game has been won or is a draw. If you feel ambitious, modify your program so that the computer makes the moves for one of the players. Also, allow the player to specify whether he or she wants to go first or second.arrow_forwardINSTRUCTIONS: In this assignment, you will make your own smart pointer type. You will write the following class to develop a referenced counted smart pointer. You will also implement a few other member functions to resemble the functionality of an ordinary raw pointer. Basically, this is a problem of designing a single, non-trivial class and overloading a few pointer related operators. You may not use any of the STLs except for stdexcept, to do this, i.e., please dont try and use a shared_ptr to implement the class. You can start with this code, and you may add other member functions, if you want. C++ LANGUAGE Only need smart_ptr.h file.arrow_forwardCreate a Matrix class and implement the following member functions: The constructors and the destructor getSize() which returns the size of the matrix; setValue( int position, int value) which sets the value in the matrix at given position; getValue (int position) which returns the current value at given position; an add method which adds two matrices together; A= ● ● a subtract method which subtract two matrices together; a multiply methods which multiplies two matrices together, if possible; an overlap function which overlaps two matrices together. The augment function takes two matrices A and B of size mlxnl and m2xn2, respectively, and produce a new matrix C of size mLxnL, where mL (resp. nL) is the largest between m1 and m2 (resp. nl and n2). The values of C will either come from the original matrices by overlapping matrix B over matrix A. Wherever a value is not available it initialized to default value 0. For example: If you overlap two matrices A of size 4x2 and B of size 3x5,…arrow_forward
- Instructions-Java Assignment is to define a class named Address. The Address class will have three private instance variables: an int named street_number a String named street_name and a String named state. Write three constructors for the Address class: an empty constructor (no input parameters) that initializes the three instance variables with default values of your choice, a constructor that takes the street values as input but defaults the state to "Arizona", and a constructor that takes all three pieces of information as input Next create a driver class named Main.java. Put public static void main here and test out your class by creating three instances of Address, one using each of the constructors. You can choose the particular address values that are used. I recommend you make them up and do not use actual addresses. Run your code to make sure it works. Next add the following public methods to the Address class and test them from main as you go: Write getters and…arrow_forwardExercise: Exercises Write a class named Octagon that extends GeometricObject and implements the Comparable and Cloneable interfaces. Assume all eight sides of the octagon are of equal length. The area can be computed using the following formula: The Octagon class has a private double data field named side with its getter and setter methods. The class has a no-arg constructor that creates an Octagon with side 0, and a constructor to create an Octagon with a specified side. Write a test program that creates an Octagon object with side value 5 and displays its area and perimeter. Create a new object using the clone method, and compare the two objects using the compareTo method. As far as classes go, the abstract GeometricObject class contains the abstract doubles getArea() and getPerimeter(). The programming language used in this exercise is Java, and it covers the Interfaces topic. I did get how most of the program should look like, but I'm facing trouble understanding a few…arrow_forwardv clailg pi % Consider the below UML diagram and do the following: > Comparable Computer modelName: String price: double yearOfManufacture: int +Computer(String, double, int) //include getters and setters //override the toString() method Implement the Comparable interface for the class Computer and do the following: 1) Create 5 objects of this class. 2) Store these objects using an Array or ArrayList. 3) Display the object of the Array/ArrayList before sorting. 4) Display the objects after sorting based on the field - "yearOfManufacture". arch O a 1) ENarrow_forward
- Polymorphism: Why is it needed especially from an OOP standpoint? What is the essential concept when you cast objects regarding Polymorphism/Inheritance? (Related Chapters 11,12,13, 19) Generics: Explain Generic Programming. Why is generics important as a data type regarding objects? Polymorphism and Objects: Explain an array of polymorphic objects in a single/double dimensional array. How do you access this? How do you process this? When would you use this? Also, when the new topic/chapter is posted regarding File/IO: Write a few lines of code that allow you to save/retrieve this data from a file using the appropriate class/methods. Do this in two ways: StreamFile I/O and URL access. You can also illustrate this in your code via text (.txt) and binary (.dat) data access. Also, write a few more additional lines of code illustrating StreamFile I/O access for .txt and .bin files.arrow_forward03 Inheritance / Polymorphism Task 1 Currently, you are using composition by creating an instance of a vector / ArrayList inside your AddressBook. This works fine but if we really think about it, and AddressBook is a collection like a stack or a queue or a vector for that matter. Your task is to: C++ derive AddressBook from vector. In other words, use the vector as a base class and derive AddressBook from it. This means that you will need to remove the Vector from the private section of your class. You are going to have to make some fundamental changes to your AddressBook so that you are using the vector / ArrayList functionality to store and retrieve people. In other words, you should be accessing the ArrayList / vector using this. C++ people, don’t forget you are returning pointers in the accessors of the AddressBook class Test your AddressBook the same way you did for assignment 2. If you have coded everything properly it should work the same. Task 2 Create class called Player that…arrow_forwardDon't use vector array .using c++ languagearrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education