เนื้อหา
Queue เป็นโครงสร้างข้อมูลแบบไดนามิกที่คุณสามารถเข้าถึงข้อมูลในกระบวนการ "มาก่อนออกก่อน" สแต็กเป็นโครงสร้างข้อมูลแบบไดนามิกที่คุณสามารถเข้าถึงข้อมูลในกระบวนการ "เข้า - ออกครั้งแรก" หากคุณใช้กองซ้อนเฉพาะรายการสุดท้ายที่คุณป้อนเท่านั้นที่จะสามารถใช้งานได้ หากคุณต้องการเข้าถึงข้อมูลที่เป็นพื้นฐานของมัน (รายการแรกที่คุณใส่) จากนั้นคุณจะถือว่ามันเป็นคิว ในการทำเช่นนี้คุณต้องใช้ฮีปที่สอง
คำสั่ง
การใช้คิวโดยใช้สองกองนั้นง่ายมาก (Ablestock.com/AbleStock.com/Getty Images)-
ในเท็กซ์เอดิเตอร์ของคุณเขียนโค้ดเพื่อใช้สแต็กตามโพรซีเดอร์และฟังก์ชันที่มีในภาษาการเขียนโปรแกรมที่คุณต้องการใช้ เรียก Stack_Entry นี้ วางข้อมูลใน Stack_Entry (ภาษาการเขียนโปรแกรมจำนวนมากใช้คำสั่ง "push" เพื่อเพิ่มข้อมูล) ตัวอย่างเช่นเรียกใช้คำสั่ง "push" ใน Stack_Entry เพื่อป้อนข้อมูลตามลำดับต่อไปนี้: "A", "B" และ "C" "A" เป็นรายการแรกที่ป้อนและอยู่ที่ด้านล่างของสแต็ก หากคุณต้องการเข้าถึงรายการแรกนี้คุณกำลังถือข้อมูลเป็นคิว
-
เขียนรหัสเพื่อใช้กองซ้อนที่สองตามขั้นตอนและฟังก์ชันที่มีอยู่ในภาษาการเขียนโปรแกรมที่คุณต้องการใช้ เรียกว่า StackSafe (ภาษาการเขียนโปรแกรมจำนวนมากใช้คำสั่ง "pop" เพื่อลบข้อมูลออกจากสแต็ก)
-
ลบแต่ละรายการออกจาก Stack_Insert และวางไว้ใน Sleep Stack โดยทั่วไปแล้วคุณลบรายการ Stack_Input และวางไว้ใน StackAid จากนั้นคุณตรวจสอบเพื่อดูว่า Stack_Input ว่างเปล่า หากไม่ว่างให้ลบไอเท็มถัดไปออกจาก Stack_Input และวางไว้ใน Sleep Stack ทำซ้ำจนกว่า Stack_Input จะว่างเปล่า ในตัวอย่างของเราคุณลบ "C" ออกจาก Stack_Input และวางไว้ใน Stack_Aid ตรวจสอบให้แน่ใจว่า InputPilot ว่างเปล่า ลบ "B" ออกจาก Stack_Input และตั้งเป็น Stack_Aid ตรวจสอบให้แน่ใจว่า InputPilot ว่างเปล่า ลบ "A" จาก Stack_Input และตั้งเป็น Stack_Aid ตรวจสอบให้แน่ใจว่า InputPilot ว่างเปล่า
-
เมื่อกอง Stack_Path ว่างเปล่ารายการที่อยู่ในฐาน Stack_Input ("A" ในตัวอย่างของเรา) ตอนนี้จะอยู่ที่ด้านบนของ Stack_Aside ลบรายการ SleepSeat และคุณได้เปลี่ยนสแต็กของคุณเป็นคิว ไอเท็มแรกของคุณในสแต็กตอนนี้เป็นไอเท็มแรกที่จะนำออก (เข้าก่อนออกก่อนหรือ FIFO เข้าก่อนออกก่อน)
สองกองมีค่าเท่ากันแถว
เคล็ดลับ
- ภาษาโปรแกรมส่วนใหญ่มีฟังก์ชั่นในการจัดการข้อมูลในเวกเตอร์ราวกับว่ามันเป็นคิวหรือสแต็ก นั่นคือคุณสามารถเข้าถึงได้ทั้งตำแหน่งสุดท้ายและตำแหน่งแรกของเวกเตอร์โดยไม่คำนึงถึงจุดสิ้นสุดที่คุณป้อนข้อมูล หากข้อมูลของคุณอยู่ในรูปแบบเวกเตอร์คุณไม่ต้องกังวลกับการเข้าถึงข้อมูลดังกล่าวเป็นคิวหรือสแต็ก แต่ถ้าข้อมูลของคุณอยู่ในกองแบบไดนามิกและคุณต้องการที่จะถือว่าเป็นคิวคุณควรใช้กองซ้อนที่สอง
สิ่งที่คุณต้องการ
- โปรแกรมแก้ไขข้อความ
- คอมไพเลอร์หรือล่ามสำหรับภาษาการเขียนโปรแกรมบางอย่าง