Rumah > Java > javaTutorial > teks badan

Buat antara muka Baris Gilir

Patricia Arquette
Lepaskan: 2024-10-02 06:23:30
asal
302 orang telah melayarinya
  • Penciptaan antara muka untuk baris gilir aksara.

  • Tiga pelaksanaan untuk dibangunkan:

  • Baris gilir linear saiz tetap.

  • Baris gilir bulat (menggunakan semula ruang tatasusunan).

  • Baris gilir dinamik (berkembang mengikut keperluan).

1 Cipta fail bernama ICharQ.java
// Antara muka baris gilir aksara.
antara muka awam ICharQ {
// Memasukkan aksara ke dalam baris gilir.
void put(char ch);
// Alih keluar aksara daripada baris gilir.
char get();
}

2 Cipta fail bernama IQDemo.java.

3 Mula mencipta IQDemo.java dengan menambah kelas FixedQueue yang ditunjukkan di sini:

Crie uma interface Queue

4 Tambahkan kelas CircularQueue yang ditunjukkan di bawah pada IQDemo.java.

Crie uma interface Queue

  • Kendalian Baris Pekeliling: Menggunakan semula ruang yang dikosongkan dalam tatasusunan apabila mengalih keluar elemen Ia boleh menyimpan bilangan elemen tanpa had, selagi terdapat pengalihan keluar.

  • Syarat Sempadan: Baris gilir tidak penuh apabila penghujung tatasusunan dicapai, tetapi apabila item yang tidak dialih keluar ditimpa oleh yang baharu.
    Kaedah put() mesti menyemak beberapa syarat untuk menentukan sama ada baris gilir penuh.

  • Syarat untuk Baris Penuh: Baris penuh jika: putloc adalah unit yang lebih kecil daripada getloc. putloc berada di penghujung tatasusunan dan getloc berada di permulaan.

  • Keadaan Baris Kosong: Baris kosong apabila getloc dan putloc adalah sama.

  • Saiz Tatasusunan: Tatasusunan asas dibuat satu unit lebih besar daripada saiz baris gilir untuk memudahkan semakan.

5 Masukkan kelas DynQueue yang ditunjukkan di bawah dalam IQDemo.java. Ia melaksanakan baris gilir "boleh dilanjutkan" yang mengembangkan saiznya apabila ruang kehabisan.

Crie uma interface Queue

  • Dalam pelaksanaan baris gilir ini, apabila baris gilir penuh, percubaan untuk menyimpan elemen lain membuat tatasusunan asas baharu dua kali lebih besar daripada asal akan diperuntukkan, kandungan semasa baris gilir akan disalin ke dalam tatasusunan ini dan rujukan kepada tatasusunan baharu akan disimpan dalam q.

6 Untuk menunjukkan tiga pelaksanaan ICharQ, masukkan kelas berikut ke dalam IQDemo.java. Ia menggunakan rujukan ICharQ untuk mengakses semua baris gilir.

kelas IQDemo {
public static void main(String args[]) {
FixedQueue q1 = FixedQueue(10) baharu;
DynQueue q2 = DynQueue(5) baharu;
CircularQueue q3 = CircularQueue(10);
baharu ICharQ iQ;
char ch;
int i;
iQ = q1;
// Memasukkan beberapa aksara ke dalam baris gilir tetap.
untuk(i=0; i < 10; i )
iQ.put((char) ('A' i));
// Memaparkan baris gilir.
System.out.print("Kandungan baris gilir tetap: ");
untuk(i=0; i < 10; i ) {
ch = iQ.get();
System.out.print(ch);
}
System.out.println();
iQ = q2;
// Memasukkan beberapa aksara ke dalam baris gilir dinamik.
untuk(i=0; i < 10; i )
iQ.put((char) ('Z' - i));
// Memaparkan baris gilir.
System.out.print("Kandungan baris gilir dinamik: ");
untuk(i=0; i < 10; i ) {
ch = iQ.get();
System.out.print(ch);
}
System.out.println();
iQ = q3;
// Memasukkan beberapa aksara ke dalam baris gilir bulat.
untuk(i=0; i < 10; i )
iQ.put((char) ('A' i));
// Memaparkan baris gilir.
System.out.print("Kandungan baris gilir bulat: ");
untuk(i=0; i < 10; i ) {
ch = iQ.get();
System.out.print(ch);
}
System.out.println();
// Memasukkan lebih banyak aksara ke dalam baris gilir bulat.
untuk(i=10; i < 20; i )
iQ.put((char) ('A' i));
// Memaparkan baris gilir.
System.out.print("Kandungan baris gilir bulat: ");
untuk(i=0; i < 10; i ) {
ch = iQ.get();
System.out.print(ch);
}
System.out.println("nSimpan dan gunakan daripada"
" baris gilir bulat.");
// Menyimpan dan menggunakan item daripada baris gilir pekeliling.
untuk(i=0; i < 20; i ) {
iQ.put((char) ('A' i));
ch = iQ.get();
System.out.print(ch);
}
}
}

7 Cipta versi bulat DynQueue. Tambahkan kaedah tetapan semula() pada ICharQ yang menjaringkan baris gilir. Buat kaedah statik yang menyalin kandungan satu jenis baris gilir yang lain.

Atas ialah kandungan terperinci Buat antara muka Baris Gilir. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan