Apa itu Stack dan Bagaimana cara mengimplementasikan Stack di Java tanpa Collection?
Diterbitkan: 2022-06-27Apa itu Stack di Jawa?
Pernahkah Anda mendengar tentang LIFO? Konsep Masuk Terakhir, Keluar Pertama? Nah, Stack adalah implementasi LIFO dari Struktur Data linier. Itu berarti, Objek dapat dimasukkan atau dihapus hanya dari satu ujung ATAU dengan kata lain hanya dari atas.
Ini adalah implementasi Stack kami di Java
Kami akan membuat fungsi di bawah ini untuk Java Stack. Harap dicatat di sini: Kami tidak menggunakan kelas Koleksi Java bawaan untuk implementasi Stack.
Kami akan menggunakan Java Collection untuk Stack di tutorial berikutnya. Tautan artikel sudah keluar.
- crunchifyPush() – memasukkan item di bagian atas tumpukan.
- crunchifyPop() – menghapus objek di bagian atas tumpukan dan mengembalikan objek itu dari fungsi. Ukuran tumpukan akan dikurangi satu.
- crunchifyPeek() – mengembalikan objek di bagian atas tumpukan tanpa menghapusnya dari tumpukan atau memodifikasi tumpukan dengan cara apa pun.
- crunchifyIsEmpty() – memeriksa apakah tumpukan kosong atau tidak.
- crunchifyIsFull() - ini menguji apakah tumpukan penuh atau tidak.
- crunchifySize() – mengembalikan jumlah total elemen yang ada di tumpukan.
Mari kita mulai:
- Buat kelas CrunchifyJavaStackTutorial.java
- Salin kode di bawah ini ke Eclipse atau IntelliJ IDEA Anda.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
package crunchify . com . java . tutorials ; /** * @author Crunchify.com * How to implement Stack in Java? Best way to implement Stack in Java. * Revision: 1.0 */ public class CrunchifyJavaStackTutorial { private static int crunchifyStackSize = 0 ; private static long [ ] crunchifyStackArray = new long [ 0 ] ; private static int crunchifyStackTop ; public CrunchifyJavaStackTutorial ( int crunchifyInt ) { crunchifyStackSize = crunchifyInt ; crunchifyStackArray = new long [ crunchifyStackSize ] ; crunchifyStackTop = - 1 ; } // Let's implement below standard Stack utilities /* crunchifyPush() - it inserts an item at the top of the stack. crunchifyPop() - it removes the object at the top of the stack and returns that object from the function. The stack size will be decremented by one. crunchifyPeek() - it returns the object at the top of the stack without removing it from the stack or modifying the stack in any way. crunchifyIsEmpty() - it checks if the stack is empty or not. crunchifyIsFull() - it tests if the stack is full or not. crunchifySize() - it returns the total number of elements present in the stack. */ // crunchifyPop(): it removes the object at the top of the stack and returns that object from the function. The stack size will be decremented by one. public long crunchifyPop ( ) { return crunchifyStackArray [ crunchifyStackTop -- ] ; } // crunchifyPeek: it returns the object at the top of the stack without removing it from the stack or modifying the stack in any way. public static long crunchifyPeek ( ) { return crunchifyStackArray [ crunchifyStackTop ] ; } // crunchifyIsEmpty - it checks if the stack is empty or not. public static boolean crunchifyIsEmpty ( ) { return ( crunchifyStackTop == - 1 ) ; } // crunchifyIsFull() - it tests if the stack is full or not. public static boolean crunchifyIsFull ( ) { return ( crunchifyStackTop == crunchifyStackSize - 1 ) ; } // crunchifyPush() - it inserts an item at the top of the stack. public void crunchifyPush ( long j ) { crunchifyStackArray [ ++ crunchifyStackTop ] = j ; } // crunchifySize() - it returns the total number of elements present in the stack. public static int crunchifySize ( ) { return crunchifyStackTop + 1 ; } public static void main ( String [ ] crunchifyArgs ) { CrunchifyJavaStackTutorial crunchifyStack = new CrunchifyJavaStackTutorial ( 5 ) ; crunchifyPrint ( "Is Stack Empty? " + crunchifyIsEmpty ( ) + "\n" ) ; crunchifyStack . crunchifyPush ( 123 ) ; crunchifyStack . crunchifyPush ( 234 ) ; crunchifyStack . crunchifyPush ( 345 ) ; crunchifyStack . crunchifyPush ( 456 ) ; crunchifyStack . crunchifyPush ( 567 ) ; crunchifyPrint ( "Peek() value: " + crunchifyPeek ( ) + "\n" ) ; while ( ! crunchifyIsEmpty ( ) ) { long crunchifyValue = crunchifyStack . crunchifyPop ( ) ; crunchifyPrint ( "Stack value: " + crunchifyValue ) ; } crunchifyPrint ( "" ) ; crunchifyPrint ( "Is Stack Empty? " + crunchifyIsEmpty ( ) ) ; crunchifyPrint ( "Is Stack Full? " + crunchifyIsFull ( ) + "\n" ) ; } // Simple Crunchify Print Utility private static void crunchifyPrint ( Object crunchifyValue ) { System . out . println ( crunchifyValue ) ; } } |
Jalankan Program Java:
Jalankan saja program di atas sebagai Aplikasi Java dan Anda akan melihat hasilnya seperti di bawah ini.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Is Stack Empty ? true Peek ( ) value : 567 Stack value : 567 Stack value : 456 Stack value : 345 Stack value : 234 Stack value : 123 Is Stack Empty ? true Is Stack Full ? false Process finished with exit code 0 |
Beri tahu saya jika Anda memiliki pertanyaan atau menjalankan pengecualian di atas program Java dan saya akan dengan senang hati men-debug ini dengan Anda.