Implementasi rantai:
Tambahkan dan hapus elemen di bagian tumpukan, pertahankan simpul ke bagian atas tumpukan di tumpukan dan ukuran indikator variabel hitungan:
Private LineArnode Top; // Tunjuk ke atas tumpukan
Hitungan int pribadi; // Ukuran tumpukan tanda keluar dari tumpukan dan tumpukan di daftar yang ditautkan: (bisa juga ekor, metode implementasinya berbeda)
Atas ---> Elemen 1 ----> Elemen 2 ---> Elemen 3 .........
Implementasi (dengan Tes Main):
LinkedStack
Tumpukan Paket; Top of the Stack; // public static void main (string [] args) {linkedStack stack = new LinkedStack (); 10; (); adalah: " + stack.top.getElement ()); System.out.println (" Elemen teratas dari tumpukan adalah: " + stack.peek ()); ukuran int int () {return;} public boolean iSempty () {Return (size () == 0);} public void push (elemen objek) {lineArnode node = Lin Earnode baru (elemen); POP () {if (isEmpty ()) {System.out.println ("Stack adalah kosong!"); Count-;
Jalankan Hasil:
Apakah tumpukan 0 hingga 10 melanjutkan tumpukan tumpukan selama 5 kali berturut -turut? : PALSU
Ukuran tumpukannya adalah: 5
Elemen teratas dari tumpukan adalah: 4
Elemen teratas dari tumpukan adalah: 4
Implementasi Array:
Bagian bawah tumpukan selalu merupakan posisi 0 dalam array.
Objek Pribadi [] Isi Private Int; Persimpangan Persimpangan
Implementasi (dengan Tes Main):
ArrayStack
Paket Stack; Persimpangan Persimpangan Ukuran int statis = 10; index = 0; 0);} public void push (elemen objek) {// if (isEmpty ()) // expand (); } POP Objek Publik () {if (ISEMPTY ()) {System.out.println ("Stack is ofmand!"); Stack Top-; ; Tekan 0 hingga 24, lalu keluar dari tumpukan selama 10 kali berturut -turut "); untuk (int i = 0; i <25; i ++) stack.push (i); untuk (int i = 0; i <10; i ++) stack.pop (); : " + Stack.isempty ()); System.out.println (" Elemen teratas dari tumpukan adalah: " + stack.peek ());}
Jalankan Hasil:
Tekan 0 hingga 24, dan kemudian ukuran tumpukan 10 kali berturut -turut: 15
Apakah tumpukannya kosong? : PALSU
Elemen teratas dari tumpukan adalah: 14
Gunakan set LinkedList untuk mensimulasikan tumpukan
metode
Java's Generics memungkinkan LinkedList untuk mensimulasikan tumpukan penyimpanan dari berbagai tipe data, termasuk int, ganda, string, objek, dll., Memperkenalkan beberapa antarmuka API yang digunakan:
Masukkan tumpukan
void addFirst (e e); // masukkan elemen yang ditentukan ke awal daftar ini
Dapatkan elemen teratas dari tumpukan
E getFirst ();
Keluar dari tumpukan
E hapusfirst (); // hapus dan kembalikan daftar elemen pertama ini
Membahayakan
boolean isempty (); // menilai tumpukan kosong
Misalnya kode
Impor Java.util.linkedlist; data int) {this.stack.addfirst (data);} public int pop () melempar nosuchelementedException {return this.stack.removefirst ();} public in t gettop () melempar nosuchelementedException {return this.stack.getFirst (); } Public static void main (string args []) {simulatingStack s = new SimulateStack (); .out.println (data);