Inserting into a Sorted Linked List – मानलो कि ITEM को किसी Sorted Linked List में Insert करना है। इस स्थिति में ITEM को दो Nodes A व B के बीच Insert करना होगा। यानी
A[INFO] < ITEM AND B[INFO] >= ITEM
इस Operation के लिए हमें सबसे पहले उस LOCATION पर पहुंचना होता है जहां के ITEM का मान A[INFO[] के मान से तो अधिक है लेकिन B[INFO] के मान से कम या बराबर है। ये काम करने के लिए हमें एक Pointer Variable PTR लेना होता है और ITEM के मान को PTR[INFO] द्वारा LIST के हर Node के INFO से Compare करना होता है। Linked List की Traversing के समय भी कुल कितने Nodes Travers हो चुके हैं इसकी जानकारी भी रखनी होती है। ये जानकारी हम एक Pointer Variable SAVE द्वारा रखते हैं कि कितने Data Elements या NODES Travers किए जा चुके हैं। SAVE p PTR को Loop के हर Iteration में Assignment द्वारा Update किया जाता है। यानी
ये Traversing तब तक चलती है जब तक PTR[INFO] > ITEM होता है। जैसे ही ITEM <= PTR[INFO] हो जाता है, Traversing :क जाती है। Traversing :कने के बाद PTR Node B को Point करता है और Node A में LOCATION Number होता है। यदि LIST Empty होती है या ITEM < START[INFO] होता है तब LOCATION = NULL होती है। इसका Algorithm हम निम्नानुसार लिख सकते हैं-
Algorithm
FINDA(INFO, LINK, START, ITEM, LOCATION)
This Procedure finds the location LOCATION of the last node in a sorted LIST such that LOCATION[INFO] < ITEM or Sets LOCATION = NULL
- IF START = NULL then [ LIST is Empty ]
- SET LOCATION = NULL and RETURN
- IF ITEM < START[INFO] then
- SET LOCATION = NULL and RETURN
- SET SAVE = START and PTR = START[LINK] [ Initialize Pointers ]
- REPEAT Step 7 and 8 WHILE PTR <> NULL
- IF ITEM < PTR[INFO] then
SET LOCATION = SAVE and RETURN [ End of IF Structure ]
- SET SAVE = PTR and PTR = PTR[LINK] [ Update Pointers ]
[ End of Step 6 Loop ]
- SET LOCATION = SAVE
- EXIT
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Data Structure and Algorithms in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Data Structure and Algorithms in Hindi | Page: 433 | Format: PDF