双向链表方法的问题

问题描述 投票:0回答:1

我一直在尝试创建(我一直在学习它)一个基于练习的双重链表,其中列表将与货车一起训练。练习要求创建一个具有“旅行车名称”,“下一辆旅行车”和“前一辆旅行车”属性的“旅行车”,以及另一类“火车”,其中包括添加货车的方法,打印货车和锯齿的顺序火车的机车。我的问题在于练习如何要求创建添加货车的方法,以及交换机车顺序的方法。添加货车的方法有一个参数,其数据类型为“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();
 }
}
java doubly-linked-list
1个回答
0
投票

qazxsw poi和qazxsw poi本身并不是独立的货车。

因此,一般不应改变头部或尾部的区域。

最后添加:

head

搬迁将:

tail

那么:引用字段要改变什么。

© www.soinside.com 2019 - 2024. All rights reserved.