Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何利用节点_Java_Stack_Queue_Nodes - Fatal编程技术网

Java 如何利用节点

Java 如何利用节点,java,stack,queue,nodes,Java,Stack,Queue,Nodes,我正在做家庭作业,但我觉得我完全迷路了。这个家庭作业的重点是使用节点在堆栈和队列中循环,但我认为我做得不对。没有,在我当前的代码中,我没有任何东西去节点类,我确信我应该有东西去那里。我刚刚开始做main,测试函数和其他东西 汽车等级 public class Car { String plate; char code; public Car(String plate, char code){ } public String getPlate(){

我正在做家庭作业,但我觉得我完全迷路了。这个家庭作业的重点是使用节点在堆栈和队列中循环,但我认为我做得不对。没有,在我当前的代码中,我没有任何东西去节点类,我确信我应该有东西去那里。我刚刚开始做main,测试函数和其他东西

汽车等级

public class Car {
    String plate;
    char code;

    public Car(String plate, char code){
    }
    public String getPlate(){
        return plate;
    }
    public void setPlate(String inPlate){
        plate = inPlate;
    }
}
节点类

public class Node {
    Node next;
    Car name;

    public Node(Node x, Car y){
        next = x;
        name = y;
    }
}
Lstack类

public class Lstack {
    int size;
    int numUsed = 0;
    Car[] stack;
    public Lstack(){
        stack = new Car[size];
    }
    public void push(Car x){
        stack[numUsed] = x;
        numUsed++;
    }
    public Car pop(){
        Car temp;
        numUsed--;
        temp = stack[numUsed];
        return temp;
    }
    public boolean isEmpty(){
        if(numUsed==0){
            return true;
        }
        else
            return false;
    }
    public int size(){
        return numUsed;
    }
    public void display(){
        System.out.println("--------------------------------------------");
        System.out.print("TOP | ");
        for(int i = 0; i < numUsed; i++){
            System.out.print(stack[i].plate +" | ");
        }
        System.out.println("--------------------------------------------");
    }

}
谷歌:“链表实施”

您的数据结构中应该有节点


您不应该使用数组

首先将
Car[]
更改为
节点[]。
Lqueue
类中

然后将
Node[]
更改为
Node
,并使用Node.next变量代替数组遍历列表


在链接列表上。将示例中的12、99和37替换为不同的车辆…

您的
Lstack
中的
size
字段未初始化。它将默认为0。将参数传递给构造函数或设置一个不同于0的默认值(希望如此)。您能告诉我如何修复它吗?整个节点的事情对我来说都是新鲜事。@user1801067谷歌回来时提供了很多教程,请尝试:@user1801067堆栈和队列将非常类似于链接列表。我查看了链接,对正在发生的事情有了半个线索。我不知道如何使node.next出现在我的代码中并有效地工作。我的意思是,我的任何地方都很接近吗?@user1801067模糊地说,你会想用一个链表来代替你对数组的使用。链接列表将使用节点。我真的不明白这一点。你能给我举个例子吗?
public class Lqueue {
    int size;
    int numUsed = 0;
    Car[] queue;
    public Lqueue(){
        queue = new Car[size];
    }
    public void insert(Car x){
        int index = numUsed;
        for(int i = numUsed; i >= 0; i--){
            queue[index + 1] = queue[index];
            index--;
        }
        queue[0] = x;
    }
    public Car remove(){
        Car temp;
        temp = queue[numUsed];
        queue[numUsed] = null;
        numUsed--;
        return temp;
    }
    public boolean isEmpty(){
        if(numUsed==0){
            return true;
        }
        else
            return false;
    }
    public int size(){
        return numUsed;
    }
    public void display(){
        System.out.println("--------------------------------------------");
        System.out.print("Front | ");
        for(int i = numUsed; i >= 0; i--){
            System.out.print(queue[i].plate +" | ");
        }
        System.out.println("--------------------------------------------");
    }
}