Stack คืออะไรและจะใช้งาน Stack ใน Java ได้อย่างไรโดยไม่ต้องรวบรวม
เผยแพร่แล้ว: 2022-06-27Stack ใน Java คืออะไร?
คุณเคยได้ยินเกี่ยวกับ LIFO หรือไม่? แนวคิดเข้าก่อนออกก่อน? Stack คือการนำ LIFO ไปใช้ของโครงสร้างข้อมูลเชิงเส้น นั่นหมายความว่า Objects สามารถแทรกหรือลบออกจากปลายด้านหนึ่งเท่านั้น หรือ กล่าวอีกนัยหนึ่งก็คือจากด้านบนเท่านั้น
นี่คือการใช้งาน Stack ใน Java . ของเราเอง
เราจะสร้างฟังก์ชันด้านล่างสำหรับ Java Stack โปรดทราบที่นี่: เราไม่ได้ใช้คลาส Java Collection ในตัวสำหรับการใช้งาน Stack
เราจะใช้ Java Collection สำหรับ Stack ในบทช่วยสอนถัดไป ออกแล้ว ลิงค์บทความ
- crunchifyPush() - แทรกรายการที่ด้านบนของสแต็ก
- crunchifyPop() - ลบวัตถุที่ด้านบนของสแต็กและส่งคืนวัตถุนั้นออกจากฟังก์ชัน ขนาดสแต็กจะลดลงหนึ่งขนาด
- crunchifyPeek() - ส่งคืนวัตถุที่ด้านบนของสแต็กโดยไม่ต้องลบออกจากสแต็กหรือแก้ไขสแต็ก แต่อย่างใด
- crunchifyIsEmpty() - ตรวจสอบว่าสแต็กว่างเปล่าหรือไม่
- crunchifyIsFull() - ทดสอบว่าสแต็กเต็มหรือไม่
- crunchifySize() – ส่งคืนจำนวนองค์ประกอบทั้งหมดที่มีอยู่ในสแต็ก
มาเริ่มกันเลย:
- สร้างคลาส CrunchifyJavaStackTutorial.java
- คัดลอกโค้ดด้านล่างลงใน Eclipse หรือ IntelliJ IDEA ของคุณ
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 ) ; } } |
เรียกใช้โปรแกรม Java:
เพียงเรียกใช้โปรแกรมด้านบนเป็น Java Application และคุณจะเห็นผลลัพธ์ดังนี้
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 |
แจ้งให้เราทราบหากคุณมีคำถามหรือได้รับข้อยกเว้นใดๆ ที่ทำงานบนโปรแกรม Java และเรายินดีเป็นอย่างยิ่งที่จะแก้ปัญหานี้กับคุณ