जब दोहरी लिंक की गई सूची में नोड्स की संख्या गिनने की आवश्यकता होती है, तो एक 'नोड' वर्ग बनाने की आवश्यकता होती है। इस वर्ग में, तीन विशेषताएं हैं, डेटा जो नोड में मौजूद है, लिंक की गई सूची के अगले नोड तक पहुंच और लिंक की गई सूची के पिछले नोड तक पहुंच है।
एक डबल लिंक्ड लिस्ट में, नोड्स में पॉइंटर्स होते हैं। वर्तमान नोड में अगले नोड के साथ-साथ पिछले नोड के लिए एक सूचक होगा। सूची में अंतिम मान का अगले सूचक में 'NULL' मान होगा। इसे दोनों दिशाओं में पार किया जा सकता है।
नीचे उसी के लिए एक प्रदर्शन है -
उदाहरण
class Node: def __init__(self, my_data): self.prev = None self.data = my_data self.next = None class count_val: def __init__(self): self.head = None self.tail = None def add_data(self, my_data): new_node = Node(my_data) if(self.head == None): self.head = self.tail = new_node; self.head.previous = None; self.tail.next = None; else: self.tail.next = new_node; new_node.previous = self.tail; self.tail = new_node; self.tail.next = None; def count_node(self): my_counter = 0; curr = self.head; while(curr != None): my_counter = my_counter + 1; curr = curr.next; return my_counter; def print_it(self): curr = self.head if (self.head == None): print("The list is empty") return print("The nodes are :") while curr != None: print(curr.data) curr = curr.next my_instance = count_val() print("Elements are being added to the list") my_instance.add_data(10) my_instance.add_data(14) my_instance.add_data(24) my_instance.add_data(17) my_instance.add_data(22) my_instance.print_it() print("The nodes in the doubly linked list are : ") print(my_instance.count_node())
आउटपुट
Elements are being added to the list The nodes are : 10 14 24 17 22 The nodes in the doubly linked list are : 5
स्पष्टीकरण
- 'नोड' वर्ग बनाया गया है।
- आवश्यक विशेषताओं वाला एक और वर्ग बनाया गया है।
- 'add_data' नाम की एक विधि परिभाषित की गई है, जिसका उपयोग डबल लिंक्ड सूची में डेटा जोड़ने के लिए किया जाता है।
- एक अन्य विधि जिसका नाम 'count_node' है, परिभाषित की गई है, जो डबल लिंक्ड सूची में नोड्स की संख्या लाने में मदद करती है।
- 'print_it' नाम की एक अन्य विधि परिभाषित की गई है, जो सर्कुलर लिंक्ड सूची के नोड्स को प्रदर्शित करती है।
- 'count_val' वर्ग का एक ऑब्जेक्ट बनाया जाता है, और दोहरी लिंक की गई सूची को एक टर्नरी ट्री में बदलने के लिए उस पर विधियों को बुलाया जाता है।
- एक 'init' विधि को परिभाषित किया गया है, कि दोहरी लिंक की गई सूची के रूट, हेड और टेल नोड्स किसी से नहीं।
- 'काउंट_नोड' विधि कहलाती है।
- यह दोहरी लिंक की गई सूची के माध्यम से पुनरावृति करता है, और सूची में नोड्स की संख्या प्राप्त करता है।
- यह 'print_it' पद्धति का उपयोग करके कंसोल पर प्रदर्शित होता है।