สวัสดีครับ ในวันนี้ผมจะมาแนะนำเกี่ยวกับว่าโครงสร้างข้อมูล (Data Structure) คืออะไรกันแน่และอะไรเป็นที่สำคัญที่ทำให้ต้องรู้เกี่ยวกับโครงสร้างข้อมูลเพื่อทำการเขียนโปรแกรม แต่ก่อนที่จะเริ่มกันนั้นผมต้องขอกล่าวก่อนเลยครับว่าการที่เรารู้หรือไม่รู้เกี่ยวกับโครงสร้างข้อมูลนั้น ไม่ได้หมายความว่าเราจะเขียนโปรแกรมไม่ได้หรือเราจะเขียนไม่เป็นเลย อันที่จริงหากเราทำการเขียนโปรแกรมไปเรื่อยๆ เดี๋ยวเราก็จะสามารถเข้าใจเกี่ยวกับโครงสร้างของข้อมูลได้ทีละนิดครับ แต่สิ่งสำคัญหรือเป้าหมายของโครงสร้างข้อมูลเพียงแต่จะให้โปรแกรมที่เราเขียนนั้นมีประสิทธิภาพและรวดเร็วในการทำสิ่งต่างๆ ครับ ใช่ครับ ในปัจจุบันนี้ข้อมูลนั้นถูกสร้างขึ้นในปริมาณที่มากมายในแต่ละวันซึ่งก็ได้เคยมีคนกล่าวไว้ว่า ' ข้อมูลคือแหล่งน้ำมันชั้นดี ' หากเราสามารถดึงประโยชน์จากข้อมูลได้เราก็สามารถคาดการณ์สิ่งที่จะเกิดขึ้นต่อไปได้เลยทีเดียว ไม่ว่าในการผลิตสิ่งของที่เป็นความต้องการหรือการสร้างสรรค์งานใหม่ แต่การที่เราจะเข้าถึงหรือใช้ข้อมูลเหล่านี้ได้นั้น เราก็จำเป็นที่จะต้องมีวิธีการที่จัดเตรียมการที่ดีก่อนเพราะหากเราไม่ได้มีแผนการว่าจะทำอย่างไร ในการเข้าถึงข้อมูลแต่ละครั้งนั้นก็อาจจะล่าช้าหรือไม่สามารถเข้าถึงข้อมูลเหล่านั้นได้เลยครับ สิ่งนี้เองโครงสร้างของข้อมูล (Data Structure) จึงสามารถช่วยเราในการเข้าถึงและบริหารข้อมูลได้ครับ โดยโครงสร้างของข้อมูลจะจำแนกออกเป็น 2 ประเภท ใหญ่ๆครับคือ 1). แบบเป็นเชิงเส้น 2). แบบไม่เป็นเชิงเส้น แต่ในที่นี้ผมขอยกตัวอย่างโครงสร้างข้อมูลที่พบเจอกันบ่อยๆ ซึ่งสามารถจำแนกออกได้เป็น 4 ประเภท ที่มักใช้กันบ่อยๆ ได้ดังนี้ 1). Array เป็นการจัดเรียงข้อมูลแบบการจองพื้นที่หรือหากมีการเรียกใช้ Array โปรแกรมจะทำการจอง Memory หรือหน่วยความจำของเครื่องแบบเป็นกลุ่ม 2). Linked List หรือลิงค์ลิส เป็นการเก็บข้อมูลแบบต่อเนื่องซึ่งจะมีพอยน์เตอร์ในการบ่งชี้ว่าตัวถัดมาจะเป็นตัวไหนซึ่งในข้อดีคือไม่จำเป็นต้องระบุพื้นที่ในการเรียกใช้ทุกครั้งรวมถึงสามารถเพิ่มหรือลบข้อมูลได้ง่าย 3). Queue จะเป็นโครงสร้างของข้อมูลที่มีลักษณะเฉพาะคือจะเป็นแบบเข้าก่อนออกก่อนคือหากข้อมูลไหนถูกจัดเก็บหลังสุดก็จะต้องออกหลังสุด 4). Stack เป็นโครงสร้างข้อมูลที่มีลักษณะตรงกันข้ามกับ Queue โดยใน Stack นั้นจะเป็นแบบการเข้าก่อนออกก่อนซึ่งจะเป็นไปตามรูปด้านบน (ลักษณะแนวการคิดจะคล้ายๆ ปิ่นโตที่จะต้องเอาบนสุดออกก่อน) ขอขอบคุณ รูปภาพประกอบโดย: นักเขียน