Deletion Any NODE from a Linked List – अभी तक हमने दो तरीकों से किसी Linked List के प्रथम व अन्तिम Node को Delete करने के तरीके को समझ व उनको Use करने के लिए उनके Algorithm के आधार पर Function Develop किए। अब हम तीसरा तरीका समझेंगे जिसमें किसी Linked List के किसी मध्य के Node को Delete करना होता है।
वास्तव में हम कभी भी ये नहीं जान सकते कि हम जिस Data Element के Node को Delete करना चाहते हैं वह Linked List के प्रथम Node पर ही है या अन्तिम Node पर। यानी अभी तक हमने जो भी कुछ किसी Node के Deletion के बारे में सीखाए वह केवल Deleting प्रक्रिया को समझने के लिए था। जब वास्तव में हमें किसी Application Software में से किसी Data Element के Node को Delete करना होता है, तब हम दो तरीकों से किसी Node को Search करके Delete करते हैं।
पहले तरीके में हम एक Key का प्रयोग करके उस Record को Search करते हैं जिसे हम Delete करना चाहते हैं और दूसरे तरीके में हम एक Node Number Key के रूप में Use करते हैं और उस Number वाले Node को Delete कर देते हैं।
यानी यदि हमें किसी LIST के चौथे Node को Delete करना है, तो हम 4 Input करते हैं। किसी भी Linked List से किसी Node को Delete करने का यही तरीका प्रायोगिग तौर पर अपनाया जाता है।
अभी तक हमने जिन दो तरीकों से किसी Linked List के किसी Node को Delete करने का तरीका अपनाया है, उन दोनों तरीकों का प्रयोग अब इस तरह से किया जाएगा कि किसी Linked List के प्रथम, मध्य या अन्तिम में से जो भी Node Delete होना चाहिए वह Requirement के अनुसार Node Delete हो जाता है। चलिए, इस प्रक्रिया को समझने की कोशिश करते हैं।
मानलो कि LIST एक Linked List है, जिसमें दो Nodes A व B के बीच एक Node N है और इस Node N को Linked List में से Delete करना है। इस Node N को Delete करने के लिए हम निम्न चित्र में दिखाए गए Process को Use कर सकते हैं-
जैसे ही हम किसी Node को Linked List में से Delete करते हैं, ये जरूरी होता है कि वह Space किसी अन्य Program के लिए Usable हो जाए यानी वह Space Free हो जाए और AVAILABLESPACE Linked List में जुड जाए। ऐसा करने के लिए हमें Programming Language “C” में free() Function का प्रयोग करना पडता है।
किसी Node के Deletion के समय भी दो स्थितियां होती हैं। पहली ये कि जब किसी Linked List में Delete किया जाने वाला Node N ही उस Linked List का START Node हो और दूसरी स्थिति ये कि Delete किया जाने वाला Node N किसी Linked List का अन्तिम Node हो जिसमें NULL हो।
मानलो कि LIST एक Linked List है और हमें किसी Node N की Location LOC दी गई है। इस Location के Node को LIST से Delete करना है। यदि हम ये माने कि हमें जिस Node को Delete करना है उस Node N से पहले के Node की Location LOCP है या यदि N किसी LIST का पहला Node है तो LOCP = NULL होता है। इस स्थिति में किसी Node N को Delete करने के लिए हमें निम्न Algorithm का प्रयोग करना होगा-
[code] Algorithm DELETE(INFO, LINK, START, AVAILABLESPACE, LOC, LOCP) This Algorithm deletes a NODE N with location LOC. LOCP is the location of the node which precedes N or, when N is the first node, LOCP = NULL. SET LOCP = START SET LOC = LOCP[LINK] IF LOCP = NULL then SET START = START[LINK] [ Delete First Node ] ELSE SET LOCP[LINK] = LOC[LINK] [ Delete Node N ] [ End of IF Structure ] SET LOC[LINK] = AVAILABLESPACE [ Return deleted node to the AVAILABLE SPACE Linked List ] AVAILABLESPACE = LOC EXIT [/code]
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Data Structure and Algorithms in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Data Structure and Algorithms in Hindi | Page: 433 | Format: PDF