4. Single Linked List Structure
• จากบทที่แล้ว เราได้เคยเห็น Linked List กันแล้วครั้งนึง
อ. กิตตินันท์ น้1อยมณี 4
one two three four
now1
now2
start data next data next data next data next
5. Single Linked List Structure
• คราวนี้ลองเปลี่ยนหน้าตาดูใหม่
อ. กิตตินันท์ น้1อยมณี 5
one two three four
now
walk
start data next data next data next data next
6. Single Linked List Structure
• Linked List มีจุดเริ่มต้นอยู่ที่โหนด Start
• มีโหนดปัจจุบัน (Now) เป็น Pointer 1 ระดับ
อ. กิตตินันท์ น้1อยมณี 6
8. AddNode
• การ AddNode คือการเพิ่มโหนดใหม่ต่อท้าย Linked List
• โหนด Now ต้องชี้ไปยังโหนดใหม่ที่ต่อท้าย Linked List
อ. กิตตินันท์ น้1อยมณี 8
9. AddNode
• Step 1: ให้ walk ไล่ไปหาโหนดสุดท้ายให้เจอ
อ. กิตตินันท์ น้1อยมณี 9
one two three
now
walk
start data next data next data next
10. AddNode
• Step 1: ให้ walk ไล่ไปหาโหนดสุดท้ายให้เจอ
อ. กิตตินันท์ น้1อยมณี 10
one two three
now
walk
start data next data next data next
11. AddNode
• Step 1: ให้ walk ไล่ไปหาโหนดสุดท้ายให้เจอ
อ. กิตตินันท์ น้1อยมณี 11
one two three
now
walk
start data next data next data next
12. AddNode
• Step 1: ให้ walk ไล่ไปหาโหนดสุดท้ายให้เจอ
อ. กิตตินันท์ น้1อยมณี 12
one two three
now
walk
start data next data next data next
1
13. AddNode
• Step 2: สร้างโหนดใหม่พร้อมกับชี้ไปที่โหนดใหม่
อ. กิตตินันท์ น้1อยมณี 13
now
walk
start data next data next data next
one two three four
data next
14. AddNode
• Step 2: สร้างโหนดใหม่พร้อมกับชี้ไปที่โหนดใหม่
อ. กิตตินันท์ น้1อยมณี 14
now
walk
start data next data next data next
one two three four
2
data next
15. AddNode
• Step 3: ให้โหนดสุดท้ายชี้ไปที่ NULL
อ. กิตตินันท์ น้1อยมณี 15
now
walk
start data next data next data next
one two three four
3data next
16. AddNode
• Step 4: ให้โหนด now เปลี่ยนไปชี้ที่โหนดใหม่
อ. กิตตินันท์ น้1อยมณี 16
now
walk
start data next data next data next
one two three four
4
data next
17. AddNode
• สรุปคือ
อ. กิตตินันท์ น้1อยมณี 17
now
walk
start data next data next data next
one two three four
4
data next
1
2
3
22. InsertNode
• Step 1: สร้างโหนด Temp ขึ้นมาเพื่อเก็บโหนดเก่าเอาไว้ก่อน
อ. กิตตินันท์ น้1อยมณี 22
one two three
temp
walk
start data next data next data next
1
23. InsertNode
• Step 2: เปลี่ยนจุดที่ walk ชี้ ให้ไปชี้ที่โหนดใหม่ได้เลย
อ. กิตตินันท์ น้1อยมณี 23
one two three
temp
walk
start data next data next data next
24. InsertNode
• Step 2: เปลี่ยนจุดที่ walk ชี้ ให้ไปชี้ที่โหนดใหม่ได้เลย
อ. กิตตินันท์ น้1อยมณี 24
temp
walk
start data next data next
one two three
data next
25. InsertNode
• Step 2: เปลี่ยนจุดที่ walk ชี้ ให้ไปชี้ที่โหนดใหม่ได้เลย
อ. กิตตินันท์ น้1อยมณี 25
temp
walk
start data next data next data next
one two three three
data next
26. InsertNode
• Step 2: เปลี่ยนจุดที่ walk ชี้ ให้ไปชี้ที่โหนดใหม่ได้เลย
อ. กิตตินันท์ น้1อยมณี 26
temp
walk
start data next data next data next
one two three three
data next
2
27. InsertNode
• Step 3: ให้โหนดใหม่ชี้ไปที่ temp ได้เลย
อ. กิตตินันท์ น้1อยมณี 27
temp
walk
start data next data next data next
one two three three
data next
3
28. InsertNode
• Step 3: ให้โหนดใหม่ชี้ไปที่ temp ได้เลย
อ. กิตตินันท์ น้1อยมณี 28
temp
walk
start data next data next data next
one two three three
data next
32
1
31. InsertNode
• Step 1: สร้างโหนด Temp ขึ้นมาเพื่อเก็บโหนดเก่าเอาไว้ก่อน
อ. กิตตินันท์ น้1อยมณี 31
one two three
temp
walk
start data next data next data next
1
32. InsertNode
• Step 2: เปลี่ยนจุดที่ walk ชี้ ให้ไปชี้ที่โหนดใหม่ได้เลย
อ. กิตตินันท์ น้1อยมณี 32
one two three
temp
walk
start data next data next data next
33. InsertNode
• Step 2: เปลี่ยนจุดที่ walk ชี้ ให้ไปชี้ที่โหนดใหม่ได้เลย
อ. กิตตินันท์ น้1อยมณี 33
temp
walk
start data next data next
one two three
data next
34. InsertNode
• Step 2: เปลี่ยนจุดที่ walk ชี้ ให้ไปชี้ที่โหนดใหม่ได้เลย
อ. กิตตินันท์ น้1อยมณี 34
temp
walk
start data next data next data next
one two three three
data next
35. InsertNode
• Step 2: เปลี่ยนจุดที่ walk ชี้ ให้ไปชี้ที่โหนดใหม่ได้เลย
อ. กิตตินันท์ น้1อยมณี 35
temp
walk
start data next data next data next
one two three three
data next
2
36. InsertNode
• Step 3: ให้โหนดใหม่ชี้ไปที่ temp ได้เลย
อ. กิตตินันท์ น้1อยมณี 36
temp
walk
start data next data next data next
one two three three
data next
3
37. InsertNode
• Step 3: ให้โหนดใหม่ชี้ไปที่ temp ได้เลย
อ. กิตตินันท์ น้1อยมณี 37
temp
walk
start data next data next data next
one two three three
data next
32
1
42. DeleteNode
• Step 1: สร้างโหนด Temp ขึ้นมาเพื่อเก็บโหนดเก่าเอาไว้ก่อน
อ. กิตตินันท์ น้1อยมณี 42
one two three four
walk
start data next data next data next data next
temp1
43. DeleteNode
• Step 2: เปลี่ยน Pointer ที่ walk ชี้ ให้ไปชี้ที่ temp ได้เลย
อ. กิตตินันท์ น้1อยมณี 43
one two three four
walk
start data next data next data next data next
temp
44. DeleteNode
• Step 2: เปลี่ยน Pointer ที่ walk ชี้ ให้ไปชี้ที่ temp ได้เลย
อ. กิตตินันท์ น้1อยมณี 44
one two three four
walk
start data next data next data next data next
temp
2
45. DeleteNode
• Step 2: เปลี่ยน Pointer ที่ walk ชี้ ให้ไปชี้ที่ temp ได้เลย
อ. กิตตินันท์ น้1อยมณี 45
one two three four
walk
start data next data next data next data next
temp
2
1
48. DeleteNode
• Step 1: สร้างโหนด Temp ขึ้นมาเพื่อเก็บโหนดเก่าเอาไว้ก่อน
อ. กิตตินันท์ น้1อยมณี 48
one two three four
walk
start data next data next data next data next
temp1
49. DeleteNode
• Step 2: เปลี่ยน Pointer ที่ walk ชี้ ให้ไปชี้ที่ temp ได้เลย
อ. กิตตินันท์ น้1อยมณี 49
one two three four
walk
start data next data next data next data next
temp
50. DeleteNode
• Step 2: เปลี่ยน Pointer ที่ walk ชี้ ให้ไปชี้ที่ temp ได้เลย
อ. กิตตินันท์ น้1อยมณี 50
one two three four
walk
start data next data next data next data next
temp
2
51. DeleteNode
• Step 2: เปลี่ยน Pointer ที่ walk ชี้ ให้ไปชี้ที่ temp ได้เลย
อ. กิตตินันท์ น้1อยมณี 51
one two three four
walk
start data next data next data next data next
temp
2
1