Medium นี้ผมตั้งใจเขียนขึ้นไว้เผื่อเวลาลืมจะได้มีที่มาอ่านครับ

Linked list คืออะไร?

มันเป็น data structure แบบนึงที่ถูกสร้างขึ้นมาแก้ไขปัญหาบางอย่างของอาร์เรย์ทั่วๆไปครับ นึกภาพว่าเราประกาศอารร์เรย์ขึ้นมาซักอันนึง

อาร์เรย์ 1 มิติขนาด 4 ช่อง

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

หรือถ้าหากผมอยากลบค่าซักค่านึงในอาร์เรย์ แต่ถ้าอยากให้อาร์เรย์ยังเชื่อมต่อกันเหมือนเดิม ผมก็มีความจำเป็นต้อง shift ข้อมูลในช่องถัดมาขึ้นมาแทนที่ช่องที่อยู่ก่อนหน้า

ลบเลข 3 ออกเลยต้อง shift ลำดับถัดมาขึ้นไป

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

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

โครงสร้างแต่ละข้อมูลในลิสต์

และทั้งหมดนี้ก็คือคอนเซปต์เบื้องต้นของ Linked list ครับ


Medium ที่ 10
ปีนี้ผมตั้งใจว่าจะเขียน Medium ให้ได้เดือนละ 4–5 Medium ครับ สิ้นปีก็จะมี 52 Medium เท่ากับจำนวนสัปดาห์ใน 1 ปีพอดี ไม่รู้จะทำได้มั้ย แต่ก็ถือเป็น Passion เล็กๆน้อยๆของผมครับ 5555
ผมเขียนบทความหลายแนวแล้วแต่ว่าอยากเขียนยังไง ถ้าอยากให้กำลังใจช่วยกด Clap ให้ซักที สองทีด้วยนะครับ :D
เจอกันบทความหน้าครับ