Я пытался создать (я изучал это) двусвязный список, основанный на упражнении, в котором список будет тренироваться с вагонами. В упражнении предлагается создать класс «вагон» с атрибутами «имя вагона», «следующий вагон» и «предыдущий вагон», а другой класс «поезд» с методами добавления вагонов, печати вагонов и сортировки порядка локомотивы поездов. Моя проблема в том, как в упражнении предлагается создать метод добавления вагонов, а другой - обменять порядок локомотивов. Метод добавления вагонов имеет параметр, который имеет в качестве типа данных класс «вагон», и я действительно не получил создать этот метод. Я собираюсь показать вам, что я уже сделал в коде ниже. Может ли кто-нибудь помочь мне с этим? Я не понял, как использовать параметр "vagaoCriar" в методе.
Кроме того, в упражнении предлагается создать два поезда (затем два списка) и заменить два локомотива двух поездов. Я хотел бы знать, возможно ли это с двумя двусвязными списками, чтобы поменять местами два их элемента, или это может быть просто замена порядка двух двусвязных списков без необходимости менять элементы между ними? Потому что я уже достаточно обыскал его и не нашел ничего, что говорило о том, что можно поменять местами элементы между двумя двусвязными списками. Тем не менее, у меня возникла некоторая проблема при создании метода для замены локомотивов поезда, потому что метод имеет тип данных «вагон», но имеет параметр «имя вагона» (String) и имя метода это «возьми вагон и убери», поэтому я понятия не имею, чего на самом деле хочет это упражнение.
Я понимаю, что вопросы длинные, но для такого сложного примера (для меня) я не смогу быть кратким.
public class Vagao {
String nomeDoVagao;
Wagon vagaoAnterior;
Wagon vagaoPosterior;
public Vagao (String nomeDoVagao){
this.nomeDoVagao = nomeDoVagao;
vagaoAnterior = null;
vagaoPosterior = null;
}
}
public class Trem {
Vagao head, tail = null;
//I do not know to proceed here
public void adicionarVagao (Vagao vagaoCriar){
Vagao novo_Vagao = new Vagao (vagaoCriar.nomeDoVagão);
if (head == null){
head = tail = novo_Vagao;
head.vagaoAnterior = null;
tail.vagaoPosterior = null;
} else {
tail.vagaoPosterior = novo_Vagao;
novo_Vagao.vagaoAnterior = tail;
tail = novo_Vagao;
tail.vagaoPosterior = null;
}
}
//This is the other method, that I have not understood well, so I have not
even begun it
public Vagao pegarVagaoRemover (String nomeDoVagao){...}
}
Вот как я пытался создать «поезд» и распечатать его в консоли, но он не сработал:
public class Main {
public static void main(String[] args) {
Trem trem = new Trem();
trem.adicionarVagao("qualquer");
trem.printTrem();
}
}