Medium นี้ผมก็เขียนขึ้นมาเผื่อลืมจะได้มีที่ให้อ่านอีกเหมือนเดิมครับ อ้างอิงจาก Medium ที่แล้วที่ผมเขียนเรื่องเบื้องต้นของ Linked list ใน Medium นี้เลยจะมาเขียนจริงๆครับ (เป็นการ Implement อย่างง่ายๆครับ ไม่ได้มีโอเปอเรชั่นทุกอย่างของมัน)
Struct สำหรับแต่ละ 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 ออกมา
- สร้างพอยเตอร์ buffer ขึ้นมาสำหรับชี้ไปที่ node ที่กำลังสนใจอยู่โดยชี้ไปที่ node แรกคือ node1
- จากนั้นก็ตั้งลูปเพื่อเช็คว่าแอดเดรสที่กำลังชี้อยู่เป็นแอดเดรสเปล่าหรือไม่ ถ้าไม่เป็นแอดเดรสเปล่าๆก็
- printf ฟิลด์ data ออกมา
- แล้วเลื่อนพอยเตอร์ไปที่ตัวต่อไปซึ่งก็คือ next
- ทำไปเรื่อยๆจน next เป็น NULL ก็หยุดลูป
อันนี้เป็นผลที่ได้ครับ
Medium ที่ 11
ปีนี้ผมตั้งใจว่าจะเขียน Medium ให้ได้เดือนละ 4–5 Medium ครับ สิ้นปีก็จะมี 52 Medium เท่ากับจำนวนสัปดาห์ใน 1 ปีพอดี ไม่รู้จะทำได้มั้ย แต่ก็ถือเป็น Passion เล็กๆน้อยๆของผมครับ 5555
ผมเขียนบทความหลายแนวแล้วแต่ว่าอยากเขียนยังไง ถ้าอยากให้กำลังใจช่วยกด Clap ให้ซักที สองทีด้วยนะครับ :D
เจอกันบทความหน้าครับ