Question: class Train { int trainId; String arrivalTime; String departureTime; Train prev; Train next; public Train ( int trainId, String arrivalTime, String departureTime ) { this.trainId

class Train {
int trainId;
String arrivalTime;
String departureTime;
Train prev;
Train next;
public Train(int trainId, String arrivalTime, String departureTime){
this.trainId = trainId;
this.arrivalTime = arrivalTime;
this.departureTime = departureTime;
this.prev = null;
this.next = null;
}
}
class TrainScheduleManager {
Train head;
Train tail;
TrainScheduleManager(){
head = null;
tail = null;
}
void addTrain(int trainId, String arrivalTime, String departureTime){
Train newTrain = new Train(trainId, arrivalTime, departureTime);
if (head == null){
head = newTrain;
tail = newTrain;
} else if (arrivalTime.compareTo(head.arrivalTime)<0){
newTrain.next = head;
head.prev = newTrain;
head = newTrain;
} else {
Train current = head;
while (current.next != null && arrivalTime.compareTo(current.next.arrivalTime)>=0){
current = current.next;
}
newTrain.next = current.next;
if (current.next != null){
current.next.prev = newTrain;
} else {
tail = newTrain;
}
current.next = newTrain;
newTrain.prev = current;
}
}
void removeTrain(int trainId){
Train current = head;
while (current != null){
if (current.trainId == trainId){
if (current == head){
head = current.next;
if (head != null){
head.prev = null;
}
} else if (current == tail){
tail = current.prev;
tail.next = null;
} else {
current.prev.next = current.next;
current.next.prev = current.prev;
}
break;
}
current = current.next;
}
}
void displaySchedule(){
Train current = head;
while (current != null){
System.out.println("Train ID: "+ current.trainId +"| Arrival: "+ current.arrivalTime +"| Departure: "+ current.departureTime);
current = current.next;
}
}
}
public class Main {
public static void main(String[] args){
TrainScheduleManager manager = new TrainScheduleManager();
manager.addTrain(1,"08:00","08:30");
manager.addTrain(2,"09:00","09:30");
manager.addTrain(3,"09:30","10:00");
manager.addTrain(4,"10:00","10:30");
System.out.println("Initial Train Schedule:");
manager.displaySchedule();
manager.removeTrain(2);
System.out.println("Updated Train Schedule after removing Train 2:");
manager.displaySchedule();
}
}
i need an Analysis of the Algorithm complexity used in this code

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!