Memory Allocation and Linked List

Memory Allocation and Linked List – चूंकि जब Memory में कोई Data Stored नहीं होता है, तब भी Memory का हर Memory Location आपस में एक Linked List के रूप में Linked रहता है। ये सभी Locations Free होती हैं, जिनमें Garbage Values होती हैं। इन्हें आवश्‍यकतानुसार कोई अन्‍य Linked List Use करता है। इस Memory Locations की Linked List को AVAILABLE SPACE कहा जाता है और AVAILABLESPACE लिखा जाता है। इसमें भी एक Pointer होता है जो अपने अगले Free Space का Address Stored रखता है। इस Pointer को भी हम LINK कह सकते हैं।

जब किसी अन्‍य Linked List द्वारा इस AVAILABLESPACE नाम की Linked List में से किसी Free Memory Location को Use किया जाता है तब उस Memory Location का Link AVAILABLESPACE Linked List से टूट जाता है और Create होने वाली नई Linked List से वह Location Linked हो जाता है। इस प्रक्रिया को हम निम्न चित्र द्वारा प्रदर्शित कर सकते हैं जहां हमारी Linked List में Add होने वाला नया Node AVAILABLESPACE Linked List से टूटे हुए एक Node को किसी प्रकार से Use करता है, इसे प्रदर्शित किया गया है-

Memory Allocation and Linked List - Data Structure and Algorithms in Hindi

इस चित्र को देख कर समझ जा सकता है कि जब हम किसी Linked List में नया Node Add या Create कर रहे होते हैं तो वास्तव में हमारी RAM में AVAILABLESPACE की जो Linked List है, उसमें से एक Node Delete होता है और वह Node उस Linked List में Add हो जाता है जिसमें नया Node Insert या Add किया जा रहा है या नई Linked List Create की जा रही है। इसी तरह से जब किसी Linked List में से किसी Node को Delete किया जाता है तो वास्तव में वह Node AVAILABLESPACE Linked List में Add किया जा रहा होता है।

जब किसी Linked List में नया Node Create करके उसे Point करने के लिए उसका Address START को दिया जाता है तो इसका मतलब होता है कि START में उस Node का Address दिया जा रहा है, जिसे Node Create करने से पहले AVAILABLESPACE नाम Pointer Point कर रहा था।

Figure A में हम देख सकते हैं कि START उस Node को Point कर रहा है जिसका Address 5 है और START का पहला Node उस Node को Point कर रहा है जिसका Address 10 है। इसी तरह से AVAILABLESPACE Pointer उस Node को Point कर रहा है जिसका Address 10 है तथा AVAILABLESPACE Linked List का पहला Node उस Node को Point कर रहा है जिसका Address 100 है।

जब AVAILABLESPACE Linked List के पहले Node को START की Linked List में Add किया जाता है, तब START का पहला Node AVAILABLESPACE के पहले Node को Point करने लगता है, जिसका Address 10 है और AVAILABLESPACE का पहला Node उस Node को Point करने लगता है जिसका Address 20 है। इसी प्रकार से अब AVAILABLESPACE Linked List पहले Node को छोड देता है और उस Node को Point करने लगता है जिसका Address 100 है।

इस प्रकार से AVAILABLESPACE Linked List से Node Delete होने पर किसी अन्‍य Linked List में नया Node Insert होता है और किसी Linked List से कोई Node Delete होने पर AVAILABLESPACE Linked List में नया Node Insert होता है। इस पूरे Discussion के आधार पर हम चाहें तो किसी Linked List को Start करने के लिए पिछले पृष्‍ठ पर जो Algorithm है, उसे निम्नानुसार भी लिख सकते हैं-

Memory Allocation and Linked List - Data Structure and Algorithms in Hindi

Data Structure and Algorithmes in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Data Structure and Algorithms in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Data Structure and Algorithms in Hindi | Page: 433 | Format: PDF

BUY NOW GET DEMO REVIEWS