อันดับแรก ต้องสร้างไฟล์ Node.java ขึ้นมาก่อน ซึ่งเขียนโค๊ดได้ดังนี้
อธิบายรูปดังนี้
- บบรทัดที่ 2-3 คือ Attributes ของคลาสซึ่งหมายถึงว่าในโหนดใดๆจะมีข้อมูลอะไรบ้าง และที่ขาดไม่ได้คือ Node link เพราะเป็นการเชื่อมไปยังโหนดถัดไป
- บรรทัดที่ 5-16 คือ การสร้าง Constructor Method ซึ่งมีอยู่ 3 แบบด้วยกัน ซึ่งแล้วแต่เราจะออกแบบครับ
- บรรทัดที่ 18-32 คือ การสร้าง Getters Setters Method ให้กับ Attributes ของคลาส
อันดับต่อไป ต้องสร้างไฟล์ Stack.java ซึ่งเขียนโค๊ดได้ดังนี้
อธิบายรูปดังนี้
- บรรทัดที่ 1 คือการสร้างโหนดเปล่าขึ้นมาเพื่อเอาไว้สำหรับชี้ที่โหนดล่าสุดที่เข้าไปในสแตก นั่นคือ top of stack
- บรรทัดที่ 12-14 คือเมธอดสำหรับการตรวจสอบว่าสแตกว่างใช่หรือไม่ โดยตรวจสอบที่ Node stackTop ว่าว่างหรือไม่
- บรรทัดที่ 16-18 คือเมธอดสำหรับตรวจสอบว่าสแตกเต็มหรือไม่ แต่เราสร้างสแตกด้วยลิงค์ลิสต์ดังนั้นสแตกจึงไม่มีทางเต็ม จึงคืนค่าเป็น false
- บรรทัดที่ 20-24 คือเมธอดสำหรับการนำข้อมูลใส่ในสแตก ซึ่งมีลักษณะคล้ายกับการใช้เมธอด insertHead ของ Linked List
อธิบายรูปดังนี้
- บรรทัดที่ 26-30 คือเมธอดสำหรับการดูค่าที่ตำแหน่ง top of stack
- บรรทัดที่ 32-39 คือเมธอดสำหรับการนำค่าที่อยู่ตำแหน่ง top of stack ออกจากสแตก ซึ่งมีลักษณะคล้ายกับการใช้เมธอด deleteHead ของ Linked List
อธิบายรูปดังนี้
- บรรทัดที่ 41-60 คือ main method ที่ทำการสร้างสแตกมา 2 อัน และทำการทดลองเรียกใช้เมธอดต่างไที่ได้สร้างไว้
เสร็จแล้วครับ ก็จะได้สแตกที่มีการเก็บข้อมูลแบบลิงค์ลิสต์แบบง่ายๆ ที่สามารถนำไปใช้แก้ปัญหาอื่นๆได้ หวังว่าคงจะเป็นประโยชน์นะครับ
สามารถดาวน์โหลดไฟล์ทั้งสองได้ที่นี่ครับ