Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การประยุกต์ใช้ Stack ในโครงสร้างข้อมูล


โครงสร้างข้อมูล Stack is Last In First Out (LIFO) โครงสร้างข้อมูลนี้มีการใช้งานที่สำคัญบางประการในด้านต่างๆ เหล่านี้เป็นเหมือนด้านล่าง −

  • การจัดการนิพจน์ −
    • Infix to Postfix หรือ Infix to Prefix Conversion -

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

    • การประเมิน Postfix หรือคำนำหน้า -

      หลังจากแปลงเป็นสัญลักษณ์นำหน้าหรือหลังแก้ไขแล้ว เราต้องประเมินนิพจน์เพื่อให้ได้ผลลัพธ์ เพื่อจุดประสงค์นั้น เราต้องการความช่วยเหลือจากโครงสร้างข้อมูลสแต็ก

  • ขั้นตอนการย้อนรอย -

    การย้อนรอยเป็นหนึ่งในเทคนิคการออกแบบอัลกอริธึม เพื่อจุดประสงค์นั้น เราดำดิ่งลงไปในทางใดทางหนึ่ง ถ้าทางนั้นไม่ได้ผล เราจะกลับมาที่สถานะก่อนหน้าและไปที่เส้นทางอื่น หากต้องการกลับจากสถานะปัจจุบัน เราต้องเก็บสถานะก่อนหน้าไว้ เพื่อจุดประสงค์นั้น เราต้องการ stack ตัวอย่างของการย้อนรอยคือการค้นหาวิธีแก้ปัญหาสำหรับปัญหา Knight Tour หรือปัญหา N-Queen เป็นต้น

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