Question: import java.util.ArrayList; import java.util.Comparator; / / Define the Train class class Train { private int trainId; private String arrivalTime; private String departureTime; / / Constructor
import java.util.ArrayList;
import java.util.Comparator;
Define the Train class
class Train
private int trainId;
private String arrivalTime;
private String departureTime;
Constructor
public Trainint trainId, String arrivalTime, String departureTime
this.trainId trainId;
this.arrivalTime arrivalTime;
this.departureTime departureTime;
Getters
public int getTrainId
return trainId;
public String getArrivalTime
return arrivalTime;
public String getDepartureTime
return departureTime;
Define the TrainScheduleManager class
class TrainScheduleManager
private ArrayList trains;
Constructor
public TrainScheduleManager
this.trains new ArrayList;
Method to add a train to the schedule
public void addTrainint trainId, String arrivalTime, String departureTime
Train newTrain new TraintrainId arrivalTime, departureTime;
int index binarySearchInsertPositionarrivalTime;
trains.addindex newTrain;
Helper method to find the insert position using binary search
private int binarySearchInsertPositionString targetArrivalTime
int low ;
int high trains.size;
while low high
int mid low high low;
String midArrivalTime trains.getmidgetArrivalTime;
if midArrivalTimecompareTotargetArrivalTime
low mid ;
else if midArrivalTimecompareTotargetArrivalTime
high mid ;
else
low mid ; Insert after duplicates unlikely as per the problem
return low; Insert position
Method to remove a train from the schedule by trainId
public void removeTrainint trainId
for int i ; i trains.size; i
if trainsgetigetTrainId trainId
trains.removei;
break;
Method to display the current train schedule
public void displaySchedule
System.out.printlnTrain Schedule:";
for Train train : trains
System.out.printlnTrain ID: train.getTrainId
Arrival: train.getArrivalTime
Departure: train.getDepartureTime;
Main class to demonstrate TrainScheduleManager
public class Main
public static void mainString args
TrainScheduleManager manager new TrainScheduleManager;
Adding trains
manager.addTrain::;
manager.addTrain::;
manager.addTrain::;
manager.addTrain::;
Display initial schedule
manager.displaySchedule;
Remove train with ID
manager.removeTrain;
Display updated schedule
System.out.println
Updated Train Schedule after removing Train :;
manager.displaySchedule;
i need simple binary tree diagrams to illustrate the idea of performing the different functions on the code
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
