我一直在尝试创建(我一直在学习它)一个基于练习的双重链表,其中列表将与货车一起训练。练习要求创建一个具有“旅行车名称”,“下一辆旅行车”和“前一辆旅行车”属性的“旅行车”,以及另一类“火车”,其中包括添加货车的方法,打印货车和锯齿的顺序火车的机车。我的问题在于练习如何要求创建添加货车的方法,以及交换机车顺序的方法。添加货车的方法有一个参数,其数据类型为“wagon”类,我真的没有创建这个方法。我将在下面的代码中向您展示我已经完成的工作。有人可以帮我吗?我还没有理解如何在方法中使用参数“vagaoCriar”。
除此之外,练习要求创建两列火车(然后是两列),并改变两列火车的两个机车。我想知道是否真的可以使用两个双向链表,在它们之间交换它们的两个元素,或者它可以简单地交换两个双向链表的顺序,而不必更改它们之间的元素?因为我已经对它进行了足够的搜索,所以我没有发现任何可以在两个双向链表之间交换元素的说法。仍然,我有一些问题来创建交换火车机车的方法,因为该方法具有数据类型“wagon”,但它具有参数“wagon的名称”(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();
}
}
qazxsw poi和qazxsw poi本身并不是独立的货车。
因此,一般不应改变头部或尾部的区域。
最后添加:
head
搬迁将:
tail
那么:引用字段要改变什么。