Cara memanfaatkan node

Saya sedang mengerjakan tugas pekerjaan rumah tetapi saya merasa benar-benar tersesat. Inti dari tugas pekerjaan rumah ini adalah menggunakan node untuk menelusuri tumpukan dan antrian, tetapi menurut saya saya tidak melakukannya dengan benar. Tidak ada tempat dalam kode saya saat ini, saya memiliki sesuatu yang masuk ke kelas simpul dan saya yakin saya harus melakukan sesuatu ke sana. Saya baru saja mulai mengerjakan main, menguji fungsi dan lainnya.

Kelas mobil

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;
    }
}

kelas simpul

public class Node {
    Node next;
    Car name;

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

Kelas tumpukan

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

}

Kelas antrian

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

person user1801067    schedule 03.04.2013    source sumber
comment
Bidang size Anda di Lstack tidak diinisialisasi. Nilai defaultnya adalah 0. Berikan argumen ke konstruktor Anda atau tetapkan nilai default yang berbeda dari 0 (mudah-mudahan).   -  person Sotirios Delimanolis    schedule 04.04.2013


Jawaban (2)


google: "penerapan daftar tertaut"

Anda harus memiliki Node di struktur data Anda.

Anda tidak boleh menggunakan array.

person Mike Rylander    schedule 03.04.2013
comment
dapatkah Anda menunjukkan kepada saya apa yang dapat saya lakukan untuk memperbaikinya? Seluruh hal tentang simpul ini adalah hal baru bagi saya. - person user1801067; 04.04.2013
comment
@ user1801067 google kembali dengan banyak tutorial, coba: codingfreak.blogspot.com/2009/08/ - person Mike Rylander; 04.04.2013
comment
@ user1801067 tumpukan dan antrian akan sangat mirip dengan daftar tertaut. - person Mike Rylander; 04.04.2013
comment
Saya melihat tautannya, dan memiliki setengah petunjuk apa yang sedang terjadi. Saya tidak tahu cara membuat node.next ada dalam kode saya dan bekerja secara efektif. Maksudku, apa yang kumiliki sudah dekat? - person user1801067; 04.04.2013
comment
@ user1801067 samar-samar, Anda ingin mengganti penggunaan array dengan daftar tertaut. Daftar tertaut akan menggunakan node. - person Mike Rylander; 04.04.2013
comment
@ user1801067 contoh lain, kali ini Antrean roseindia.net/java/ contoh/java/util/QueueImplement.shtml - person Mike Rylander; 04.04.2013
comment
Saya memahami fungsi daftar tertaut, saya hanya kesulitan menerapkannya. - person user1801067; 04.04.2013
comment
@ user1801067 lihat stackoverflow.com/questions/8557192/ sebagai permulaan. - person Mike Rylander; 04.04.2013

Mulailah dengan mengubah Car[] menjadi Node[]. di kelas Lqueue.

Kemudian ubah Node[] menjadi Node dan alih-alih menggunakan array, gunakan variabel node.next untuk melintasi daftar.

Berikut adalah halaman wikipedia tentang daftar tertaut. Gantikan angka 12, 99, dan 37 pada contoh dengan Mobil yang berbeda...

person TofuBeer    schedule 03.04.2013
comment
aku benar-benar tidak mengerti hal ini. bisakah Anda memberi contoh kepada saya? - person user1801067; 04.04.2013