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

ความแตกต่างระหว่างโครงสร้างข้อมูลสแต็กและคิว


ก่อนความแตกต่างของ Stack และ Queue จะดีกว่าที่จะเข้าใจแนวคิดของประเภทข้อมูลในการเขียนโปรแกรมซึ่งระบุว่าประเภทข้อมูลเป็นประเภทของข้อมูลที่สร้างตัวแปรเพื่อเก็บข้อมูล โดยหลักแล้วมีประเภทข้อมูลสองประเภทคือประเภทข้อมูล Primitive และ Non Primitive โดยที่ประเภทข้อมูล Primitive เป็นประเภทข้อมูลที่กำหนดไว้ล่วงหน้า ซึ่งรองรับโดยภาษาการเขียนโปรแกรม ในขณะที่ประเภทข้อมูลที่ไม่ใช่แบบพื้นฐานไม่ได้กำหนดโดยภาษาโปรแกรม แต่กำหนดไว้แทน สร้างโดยโปรแกรมเมอร์

ตอนนี้ทั้ง Stack และ Queue เป็นโครงสร้างข้อมูลที่ไม่ใช่แบบพื้นฐาน แต่บนพื้นฐานของการใช้งานภายใน เราสามารถระบุความแตกต่างหลักบางประการระหว่างโครงสร้างข้อมูลทั้งสองดังต่อไปนี้:

ซีเนียร์ เลขที่ คีย์ กอง คิว
1 การใช้งานภายใน Stack ถูกใช้งานภายในในลักษณะที่องค์ประกอบที่แทรกที่สุดท้ายใน stack จะเป็นองค์ประกอบแรกที่ออกมาจากมัน ดังนั้น stack จึงติดตาม LIFO (เข้าและออกก่อน) ในทางกลับกัน Queue ถูกใช้งานในลักษณะที่องค์ประกอบที่แทรกในคิวแรกจะเป็นองค์ประกอบแรกที่ออกมา ดังนั้นคิวจึงตาม FIFO (เข้าก่อนและออกก่อน)
2 องค์ประกอบเป้าหมาย ในกรณีที่การทำงานของ Stack เกิดขึ้นจากปลายด้านหนึ่งของรายการที่เรียกว่าด้านบนเท่านั้น ในกรณีของการดำเนินการคิวในองค์ประกอบ เช่น การแทรกเกิดขึ้นที่ด้านหลังของรายการและการลบเกิดขึ้นจากด้านหน้าของรายการ
3 ป้ายกำกับและแฟล็ก ในสแต็กจะมีการตั้งค่าสถานะเพียงอันเดียวเพื่อเข้าถึงรายการซึ่งชี้ไปที่องค์ประกอบสุดท้ายที่อยู่ในรายการเสมอ ในกรณีที่มีการจัดคิวสองแฟล็กเพื่อเข้าถึงรายการ ธงด้านหน้าจะชี้ไปที่องค์ประกอบแรกที่แทรกอยู่ในรายการเสมอและยังคงอยู่ และธงด้านหลังจะชี้ไปที่องค์ประกอบที่แทรกล่าสุดเสมอ
4 การดำเนินการ ในการดำเนินการ Stack เรียกว่า Push and Pop ในขณะที่การดำเนินการคิวเรียกว่า Enqueue และ dequeue
5 การนำไปใช้ Stack ไม่มีตัวแปรใดๆ ดังนั้นจึงไม่ได้ใช้งานเพิ่มเติม ในทางกลับกัน คิวมีรูปแบบต่างๆ เช่น คิวแบบวงกลม คิวลำดับความสำคัญ คิวที่สิ้นสุดแบบทวีคูณ
6 ความซับซ้อน ตามจุดด้านบน Stack นั้นง่ายกว่า Queue ในทางกลับกัน คิวมีความซับซ้อนมากกว่าเมื่อเปรียบเทียบกับสแต็ค