Answered step by step
Verified Expert Solution
Question
1 Approved Answer
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; what is the time complexity and space complexity of the given code
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;
what is the time complexity and space complexity of the given code
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started