-1

宿題に取り組んでいますが、完全に道に迷っているような気がします。この宿題のポイントは、ノードを使用してスタックとキューを循環させることですが、私はそれを正しく行っているとは思いません。私の現在のコードのどこにも、ノードクラスに行くものはありません。そこに何かがあるはずです。メインの作業を始めたばかりで、関数などをテストしています。

車のクラス

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("--------------------------------------------");
    }

}

Lqueue クラス

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("--------------------------------------------");
    }
}
4

2 に答える 2

1

クラスで着替えることCar[]から始めます。Node[].Lqueue

次に、配列を使用する代わりに node.next 変数に変更Node[]して、リストをトラバースします。Node

これは、リンクされたリストに関するウィキペディアのページです。例の 12、99、および 37 を別の車に置き換えます...

于 2013-04-03T20:43:55.653 に答える
1

グーグル:「リンクリストの実装」

データ構造にノードが必要です。

配列を使用しないでください。

于 2013-04-03T20:40:03.683 に答える