วันพฤหัสบดีที่ 3 ตุลาคม พ.ศ. 2556

สร้าง Stack ด้วยภาษา Java (Stack Linked List Implementation)

สืบเนื่องจากบล็กที่แล้วเขียนถึงเรื่อง สร้าง Stack ด้วยภาษา Java (Array Implementation) สำหรับบล็อกนี้จะมาสร้าง Stack เหมือนกัน แต่ใช้ Linked List มาใช้ในการเก็บข้อมูลแทน Array จะเป็นยังไง เชิญด้านล่างเลย

อันดับแรก ต้องสร้างไฟล์ 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 อัน และทำการทดลองเรียกใช้เมธอดต่างไที่ได้สร้างไว้

เสร็จแล้วครับ ก็จะได้สแตกที่มีการเก็บข้อมูลแบบลิงค์ลิสต์แบบง่ายๆ ที่สามารถนำไปใช้แก้ปัญหาอื่นๆได้ หวังว่าคงจะเป็นประโยชน์นะครับ

สามารถดาวน์โหลดไฟล์ทั้งสองได้ที่นี่ครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น