Medium นี้ผมก็เขียนขึ้นมาเผื่อลืมจะได้มีที่ให้อ่านอีกเหมือนเดิมครับ อ้างอิงจาก Medium ที่แล้วที่ผมเขียนเรื่องเบื้องต้นของ Linked list ใน Medium นี้เลยจะมาเขียนจริงๆครับ (เป็นการ Implement อย่างง่ายๆครับ ไม่ได้มีโอเปอเรชั่นทุกอย่างของมัน)


Struct สำหรับแต่ละ Node

โครงสร้างในแต่ละ Node

จากภาพจะเห็นว่าในแต่ละ Node จะมีโครงสร้างสำคัญอยู่ 2 ส่วนคือ 1.Data หรือก็คือส่วนที่ใช้สำหรับเก็บข้อมูล 2.Next หรือก็คือส่วนที่เป็นพอยเตอร์ซึ่งจะชี้ไปที่ Address ของ Node ต่อไป

สามารถนำมาเขียนเป็นโครงสร้างด้วย Struct ได้ประมาณนี้ครับ

เพื่อความง่ายในการเรียกใช้ผมเลยจะใช้ typedef เข้ามาช่วย

เสร็จแล้วก็มาลองประกาศใช้ดูใน main ครับ

โค้ดข้างบนผมประกาศ linked list 3 ตัวคือ node 1,2,3 ตามลำดับ จากนั้นก็ให้ next ของ node 1 และ 2 ชี้ไปที่ node ถัดไปคือ 2 และ 3 ตามลำดับ

พอเขียนเสร็จแล้วก็มาลองดูกันครับว่ามันใช้ได้จริงๆรึเปล่า ด้วยการ travese(ท่องเข้าไป)ในลิสต์ แล้ว printf แต่ละ node ออกมา

  1. สร้างพอยเตอร์ buffer ขึ้นมาสำหรับชี้ไปที่ node ที่กำลังสนใจอยู่โดยชี้ไปที่ node แรกคือ node1
  2. จากนั้นก็ตั้งลูปเพื่อเช็คว่าแอดเดรสที่กำลังชี้อยู่เป็นแอดเดรสเปล่าหรือไม่ ถ้าไม่เป็นแอดเดรสเปล่าๆก็
  3. printf ฟิลด์ data ออกมา
  4. แล้วเลื่อนพอยเตอร์ไปที่ตัวต่อไปซึ่งก็คือ next
  5. ทำไปเรื่อยๆจน next เป็น NULL ก็หยุดลูป

อันนี้เป็นผลที่ได้ครับ

ผลที่ได้

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