Pertanyaan: Bagaimana cara menggunakan dua tumpukan untuk mengimplementasikan antrian, yaitu dua metode untuk mengimplementasikan antrian-appendTail (penyisipan) dan deleteHead (penghapusan).
Analisis: Ide intinya adalah satu tumpukan menyimpan ke depan dan tumpukan lainnya menyimpan ke belakang. Tumpukan penyimpanan maju digunakan untuk penyisipan, dan tumpukan penyimpanan terbalik digunakan untuk penghapusan.
Kode Java yang diimplementasikan adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
impor java.util.Stack;
kelas publik QueneWithTwoStacks<E> {
tumpukan pribadi<E> tumpukan1;
tumpukan pribadi<E> tumpukan2;
public void appendTail(E e) {
tumpukan1.push(e);
}
publik E deleteHead() melempar Pengecualian {
jika (tumpukan2.ukuran() <= 0) {
sementara (!stack1.isEmpty()) {
tumpukan2.push(tumpukan1.pop());
}
}
jika (tumpukan2.ukuran() == 0) {
throw new Exception("Antrian kosong!");
}
kembalikan stack2.pop();
}
}