โครงสร้างข้อมูลแบบลิงค ์ลิสต์(linked...
TRANSCRIPT
โครงสรางขอมลแบบลงคลสต (LINKED LIST)
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
เหตผลในการใชงานโครงสรางขอมลแบบลงคลสตโครงสรางขอมลแบบลงคลสต
เนองจากการจดเกบขอมลแบบ Array จะตองจองเนอททงหมดทจะใชไวกอน เชน ตองการจดเกบขอมลจานวน ทงหมดทจะใชไวกอน เชน ตองการจดเกบขอมลจานวน 1,000 คา แตละคาใชเนอท 2 byte เนอททงหมดจะเปน 2,000 byte
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
เหตผลในการใชงานโครงสรางขอมลแบบลงคลสตโครงสรางขอมลแบบลงคลสต
การใชงานตวแปรแบบ ARRAY จะตองหาเนอททอยตดกน 2 000 byte การใชงานตวแปรแบบ ARRAY จะตองหาเนอททอยตดกน 2,000 byte ถงแมวาจะไมไดใชทงหมด จะไมสามารถนาไปใชกบการจดเกบขอมล
อน ๆ ได อน ๆ ได ถาไมสามารถหาเนอทวางตดกน 2,000 byte ได กจะไมสามารถใชงาน
ได เชน ไมสามารถสงใหโปรแกรมทางาน (execute) ได ถงแมวาจะ ได เชน ไมสามารถสงใหโปรแกรมทางาน (execute) ได ถงแมวาจะ compile ผานแลวกตาม เพราะเมอมการสงใหโปรแกรมทางาน ตวแปรทกตวทใชจะตองมการจบจองเนอทใน หนวยความจา เมอไมสามารถ
จบจองเนอทได compiler ของภาษาทใชเขยนโปรแกรมอาจจะแจงขอผด พลาด (error) Out of memory Not enough memory Insufficiency memory
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ปญหาของตวแปร Array
ตองไดเนอทวางทอยตดกนตามจานวนเนอททงหมด ถามเนอทวางดงน ตองไดเนอทวางทอยตดกนตามจานวนเนอททงหมด ถามเนอทวางดงน จดท 1 วาง 1,900 byte
จดท 2 วาง 800 byteจดท 2 วาง 800 byte
จดท 3 วาง 1,990 byte
จดท 4 วาง 10 byte
จะเหนวาไมมจดใดเลยทมเนอทวางตดกน 2,000 byte ดงนนโปรแกรมนไมสามารถทางานได
กรณทจองเนอทไว 2,000 byte เกบขอมล 1,000 คา แตการใชงานจรง ๆ เกบขอมลเพยง ใ ไ ใ ไ ไ ใ 100 คา ใชเนอทไปเพยง 200 byte ทาใหเหลอเนอททไมไดใช 1,800 byte ซงเนอท 1,800
byte จะถกกนไว สาหรบตวแปรนน ๆ ดงนนเนอททเหลอจะไมสามารถนาไปใชงานอนได
ไ ใ กรณทจองเนอทไวเกบขอมล 1,000 คา แตการใชงานจรง ๆ ตองการมากกวา 1,000 คา เชน ตองการเพม อก 2 คา กไมสามารถทจะเพมเตมขอมลได (จองไวแคไหน ใชแคนน)
จากปญหาของ array ทง 3 ขอ สามารถแกปญหาไดโดยใช linked lists
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ลกษณะ Linked lists
Linked lists จะไมมการจองเนอท หรอทอย (address)ใน memory ไวกอน Linked lists จะไมมการจองเนอท หรอทอย (address)ใน memory ไวกอน เมอตองการใชจงจะทาการขอ เนอท ซงกจะทาการขอเนอทสาหรบ 1 คา
ใ ไป เมอตองการใชสาหรบขอมลตอไป กจะทาการขอเนอทอก เนอทท ขอใหม ไมจาเปนตองเปนเนอททอยตดกน แตเปนเนอทบรเวณใดกได
ทหาและพบวาวาง เมอเนอทไมไดอย ตดกน จะตองมตวททาหนาทจาวาขอมลตวตอไปเกบอยท
ใ address ใด ซงตวททาหนาทจาจะหมายถงตวททาหนาท เชอมระหวางขอมลใด ๆ กบขอมลตวตอไป ซงการเชอมนเรยกวา link และเมอเชอมขอมลหลาย ๆ คาเขาดวยกน 1 ชด จะเรยกวา listๆ คาเขาดวยกน 1 ชด จะเรยกวา list
ขอมล 1 คา จะเรยกวา node ซงแตละ node จะประกอบดวย ขอมลทจดเกบ
address ของ node (ขอมล) ตอไป
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
COMPONENTS OF A LINKED LIST
DATA NEXT
POINTER
POINTERNODE
POINTER is similar variable for contain the address of node if not point to any address of node called “NULL” pointer will hold the address of first node call “START”
NODE DATA : contain the information NEXT : contain the address of next node in link list
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ลกษณะของหนวยความจาหลก
DATA0xFF0000110xFF000011
0xFF000012
DATA0xFF000013
0xFF000014
0xFF000015
0 FF00000xFF000016
DATA0xFF000017
0xFF000018
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
LINKED LIST REPRESENTATION
IN MEMORYIN MEMORY
DATA
STARTDATA DATA
NODE A NODE B NODE C
0x80017DATA 0x800010
0x80017DATA 0x800031 DATA NULL
0x80017 0x80010 0x80031
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
Linked lists แกปญหา Array
แกปญหาท 1 แกปญหาท 1 เนองจาก linked list จะขอเนอทครงละ 1 คา และเนอททขอไมจาเปนตองตดกน ดงนน
สามารถใชเนอท วางตามจดตาง ๆ ได เชน ตองการเนอทสาหรบขอมล 1 000 คา แตล สามารถใชเนอท วางตามจดตาง ๆ ได เชน ตองการเนอทสาหรบขอมล 1,000 คา แตละ คาใช 2 byte กจะทาการขอเนอททละ 1 คา คอ 2 byte จานวน 1,000 ครง ซงสามารถใชเนอตามจดท 1-4 ดงแสดงจดทวางในปญหาของ array ขอท 1ได ใชเนอตามจดท 1 4 ดงแสดงจดทวางในปญหาของ array ขอท 1ได
แกปญหาท 2 li k d li t 1 ใช ไ เนองจาก linked list จะขอเนอทครงละ 1 คา และขอเมอตองการใช ดงนนจะไมมการ
สญเสยเนอทใน memory ไปฟร ๆ นนคอ ใชเนอทตามจรง ตองการแคไหนใชเนอทไปแคนน แคนน
แกปญหาขอท 3 li k d li t ไปไ ส เนองจาก linked list จะขอเนอทไปไดเรอย ๆ ดงนนเมอมขอมลเพมกสามารถขอเนอท
ไดอกนนคอ ขอไดไปเรอยๆ ไมมขอจากด จนกวา เนอทใน memory จะเตม (ไมวาง )
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ประเภทของ linked lists
ป ป linked lists แบงเปน 2 ประเภท
Singly linked lists ( list ทม linked เดยว ) Singly linked lists ( list ทม linked เดยว )
Doubly linked list ( list ทม 2 linked ) Doubly linked list ( list ทม 2 linked )
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
TYPES OF LINKED LIST
Singly linked list
DATA
STARTDATA
Doubly linked list NODE A NODE B
DATA
STARTDATADATA DATA
NODE A NODE B
Circular linked list
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
OPERATION ON LINKED LIST
1. Creation
2. Insertion
3. Deletion
4. Traversing
5. Searching
6. Concatenation
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
INSERTION OPERATION
INSERTION OPERATION ของ LINKED LISTS คอ
การเพมโหนดทตนลงคลสต (AT THE BEGINNING OF THE LINKED LIST)การเพมโหนดทตนลงคลสต (AT THE BEGINNING OF THE LINKED LIST)
การเพมโหนดตอทายลงคลสต (AT THE END OF THE LINKED LIST)
การเพมโดยการแทรกระหวางโหนด (AT ANY SPECIFIED POSITION IN
BETWEEN IN A LINKED LIST)BETWEEN IN A LINKED LIST)
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
DELETION OPERATION
DELETION OPERATION ของ LINKED LISTS คอ
การลบโหนดทตนลงคลสต (AT THE BEGINNING OF THE LINKED LIST)การลบโหนดทตนลงคลสต (AT THE BEGINNING OF THE LINKED LIST)
การลบโหนดททายลงคลสต (AT THE END OF THE LINKED LIST)
การลบใดๆระหวางโหนด (AT ANY SPECIFIED POSITION IN BETWEEN IN A
LINKED LIST)LINKED LIST)
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
Singly linked lists
ป เปน linked lists ทมการเกบ link เดยว คอเกบเฉพาะ link ของ node ตอไป (next node) ของ node ตอไป (next node)
node ของ singly linked lists ประกอบดวย
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ตวอยาง Node แบบ Single Link List
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ALGORITHM INSERT A NODE AT THE BEGINNINGINSERT A NODE AT THE BEGINNING
1. Input DATA to be inserted2. Create a NewNode
3. NewNode → DATA = DATA4 If (START equal to NULL)4. If (START equal to NULL)
(a) NewNode → Next = NULL5. Else
(a) NewNode → Next = START6. START = NewNode7 Exit7. Exit
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ALGORITHM INSERT A NODE AT THE END INSERT A NODE AT THE END
1. Input DATA to be inserted2. Create a NewNode
3. NewNode → DATA = DATA4. NewNode → Next = NULL5. If (START equal to NULL)
(a) START = NewNode6. Else
(a) TEMP = START
(b) While (TEMP → Next not equal to NULL)(i) TEMP = TEMP → Next
7. TEMP → Next = NewNode8. Exit
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ALGORITHM INSERT A NODE AT ANY SPECIFIED POSITIONINSERT A NODE AT ANY SPECIFIED POSITION
1 I t DATA d POS t b i rt d1. Input DATA and POS to be inserted2. initialize TEMP = START; and j = 03. Repeat the step 3 while( k is less than POS)3. Repeat the step 3 while( k is less than POS)
(a) TEMP = TEMP è Next(b) If (TEMP is equal to NULL)
(i) Display “Node in the list less than the position”(ii) Exit
(c) k = k + 14. Create a New Node
5 NewNode → DATA DATA5. NewNode → DATA = DATA6. NewNode → Next = TEMP → Next7. TEMP → Next = NewNodeM xt w d8. Exit
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
การเพมขอมลใน Single Link List
ใ ป Insert ของ Singly linked lists กาหนดใหตวแปร
F เกบ address ของ node แรกของ listF เกบ address ของ node แรกของ list
NP เกบ address ของ node ทตองการเพม
การอางถงรายการใน node เชน
o อางถงขอมล ของ node F จะระบเปน F data
t ข d F ป F to อางถง next ของ node F จะระบเปน F next
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
การเพมขอมลตอทาย list (Append Singly linked list) (Append Singly linked list)
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
คาถาม ?
ไ ไ ไ ใ ถาม ทราบไดอยางไรวา list วาง ( ยงไมมขอมลใน list )
ตอบ เมอ F = null โดยการตรวจสอบวา F มคาเปน null หรอไมตอบ เมอ F = null โดยการตรวจสอบวา F มคาเปน null หรอไม
ถาม ทราบไดอยางไร วา node ใดเปน node สดทายของ list
ตอบ node ท next เปน null โดยการตรวจสอบทละ node วา ไ next เปน null หรอไม เรมจาก node แรก คอ node ท F (เพราะ
F เปนตวแปรทจา address ของ node แรกของ list) ไปเรอย ๆF เปนตวแปรทจา address ของ node แรกของ list) ไปเรอย ๆ
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ใ แสดงในลกษณะ Link List
แสดงในลกษณะการเกบขอมลจรง
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ถาม ถา next ของ node F ไมใช null แลวจะเลอนไป node ตอไปไดอยางไร ถาม ถา next ของ node F ไมใช null แลวจะเลอนไป node ตอไปไดอยางไร F เปนตวแปรทจา address ของ node แรก ดงนนจะได นนคอ ตวแปร F อย
ท address 100 และมคาเปน 100 ซงเปน address ของ node แรกท address 100 และมคาเปน 100 ซงเปน address ของ node แรกการทจะเลอน F ไป node ตอไป คอ ให F มคาเปน address ของ node ท 2 คอ address 200address 200F --> data จะได 5 F --> next จะได 200ดงนน ถาตองการให F มคาเปน node ตอไป คอ มคาเปน 200 จะไดF = F --> next เพราะ F --> next มคาเปน 200แตถาเลอนไป node ตอไป โดยใชตวแปร F จดเรมตนของ list กจะหายไป ดงนน ตวแปรทเปนตวจา node แรก ของ list จะตองอยท node แรกตลอด
ดงนน กรณทตองการเลอนไปยง node ถดไป จะตองใชตวแปรเพมอก เพอ ทาหนาทในการเลอน ( ซงไมทาใหคาของ F เปลยนไป ) ในทนจะใชตวแปร P ในหนาทในการเลอน ( ซงไมทาใหคาของ F เปลยนไป ) ในทนจะใชตวแปร P ในการเลอน nod
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ใ ไ ไ ไป ถาให P = F จะได ภาพเสมอนจะไดดงตอไปน
ถาให P = PNext จะไดภาพเสมอนจะไดดงตอไปน
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ตวอยางคาถาม
ไ ไ คาถาม จะเชอมระหวาง node ไดอยางไร (link)
คาตอบ คาตอบ
กาหนดให P และ NP เปนดงน
ตองการเชอมระหวาง node P กบ node NP นนคอ ให next ของ node P มคาเปน 400 ซง 400 จะเปนคาของ NP ดงนนจะระบเปน
P next = NPP next NPจะได หรอ
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUESICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ตวอยางโจทยการใชลงคลสต
จงเขยนขนตอนการทางาน (Algorithm) ของการสรางโครงสราง
ขอมลแบบลงคลสตและแสดงขนตอนการทางานของแตละ
ขนตอนในการเพมขอมลแตละตว เพอใสขอมลและเรยงขอมล
โ จากนอยไปมาก โดยมขอมลสมมตดงน ตามลาดบ
8 , 5 , 9 , 3 , 6 , 4
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
Delete Node From Linked List
Pointer
START Pointer เพอใชในการระบถงตนของ Linked List
ใ ใ TEMP Pointer เพอใชในการระบถง Node ทตองการลบ
HOLD Pointer เพอใชในการระบถง Node ทกอนหนา Temp
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ALGORITHM FOR DELETING A NODE (#1)ALGORITHM FOR DELETING A NODE (#1)
1. Input the DATA to be deleted
2. if ((START → DATA) is equal to DATA)
( ) TEMP START (a) TEMP = START
(b) START = START → Next
(c) Set free the node TEMP, which is deleted
(d) Exit
3. HOLD = START
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ALGORITHM FOR DELETING A NODE (#2)ALGORITHM FOR DELETING A NODE (#2)
4. while ((HOLD → Next → Next) not equal to NULL))
(a) if ((HOLD → NEXT → DATA) equal to DATA)
o (i) TEMP = HOLD → Next
o (ii) HOLD → Next = TEMP → Next
o (iii) Set free the node TEMP, which is deleted
o (iv) Exit
(b) HOLD = HOLD → Next
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ALGORITHM FOR DELETING A NODE (#3)ALGORITHM FOR DELETING A NODE (#3)
5. if ((HOLD → next → DATA) == DATA)
(a) TEMP = HOLD → Next
(b) S f h d TEMP hi h i d l d (b) Set free the node TEMP, which is deleted
(c) HOLD → Next = NULL
(d) Exit
6. Display “DATA not found”
7 Exit 7. Exit
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
20 30 33 34 NULL
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
Idea
Hold Pointer ในการทองเขาไปใน Linked List เพอหา Node เปาหมายทจะเพมหรอลบ
T P i ใ N d ป Temp Pointer ในการระบถง Node เปาหมายทจะเพมหรอลบ
Hold อยหนา Temp เพอใหสามารถเพมหรอลบ Node ได Hold อยหนา Temp เพอใหสามารถเพมหรอลบ Node ได
*** ไมวาจะเปนการเพมหรอลบ ควรจะม Function ในการคนหาเปาหมายใหไดกอน
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ปรบปรง Algorithm ในการคนหา
จาก Algorithm ทใหจะได Temp Pointer ชอยทเปาหมาย เพยงอยางเดยว
*** ป ป Al i h ใ ไ T P i H ld *** ปรบปรง Algorithm ใหได Temp Pointer และ Hold Pointer หลงจากคนหาเปาหมายเจอ
Temp Pointer อยทเปาหมาย
Hold Pointer อยทหนาเปาหมาย
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ALGORITHM FOR SEARCHING A NODE
1 I t th DATA t b h d 1. Input the DATA to be searched 2. Initialize TEMP = START; POS =1; 3. Repeat the step 4, 5 and 6 until (TEMP is equal to NULL)
4. If (TEMP → DATA is equal to DATA) (a) Display “The data is found at POS” (b) Exit
5. TEMP = TEMP → Next 6. POS = POS+1 7. If (TEMP is equal to NULL) (a) Display “The data is not found in the list”
8. Exit
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
DOUBLY LINKED LIST
All nodes are linked together by multiple links
Every nodes can reference to Every nodes can reference to
next node
previous node
E d h th fi ld
L Pointer DATA R Pointer
DOUBLY LINKED LIST NODE Every nodes has three fields
Left Pointer will hold the address of previous node
DOUBLY LINKED LIST NODE
p
DATA will store the information of the node
Right Pointer will hold the address of next node
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
REPRESENTATION OF DOUBLY LINKED LIST
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ALGORITHM FOR INSERTING A NODEOF DOUBLY LINKED LISTOF DOUBLY LINKED LIST
1 I t th DATA d POS 1. Input the DATA and POS 2. Initialize TEMP = START; i = 0 3. Repeat the step 4 if (i less than POS) and (TEMP is not equal to NULL) 3. Repeat the step 4 if (i less than POS) and (TEMP is not equal to NULL)
4. TEMP = TEMP → RPoint; i = i +1 5. If (TEMP not equal to NULL) and (i equal to POS)
(a) Create a New Node
(b) NewNode → DATA = DATA ( ) N N d RP i t TEMP RP i t (c) NewNode → RPoint = TEMP → RPoint (d) NewNode → LPoint = TEMP (e) (TEMP → RPoint) → LPoint = NewNode (f ) TEMP → RPoint = New Node
6. Else l “ ” (a) Display “Position NOT found”
7. Exit
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES
ตวอยาง Linked List
จาก Linked List ทกาหนดให 3 , 5 , 7 , 8 1) ใหเขยนขนตอนและหรอรปภาพเพออธบายขนตอนการลบ Node 7 1) ใหเขยนขนตอนและหรอรปภาพเพออธบายขนตอนการลบ Node 7
ออกจาก Linked List ทง 2 แบบ
o Singly linked list
o Doubly linked list
2) ใหเขยนขนตอนและหรอรปภาพเพออธบายขนตอนการเพม Node 11 หลง Node 5 เขาไปท Linked List ทง 2 แบบ
o Singly linked list
D bl li k d li t o Doubly linked list
ICOMICOM114114: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES: DATA STRUCTURES AND COMPUTER PROGRAMMING TECHNIQUES