Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

दोहरी लिंक की गई सूची के बीच से एक नया नोड हटाने के लिए पायथन प्रोग्राम

जब दोहरी लिंक की गई सूची के बीच से किसी नोड को हटाना आवश्यक होता है, तो एक 'नोड' वर्ग बनाने की आवश्यकता होती है। इस वर्ग में, तीन विशेषताएं हैं, डेटा जो नोड में मौजूद है, लिंक की गई सूची के अगले नोड तक पहुंच और लिंक की गई सूची के पिछले नोड तक पहुंच है।

एक और वर्ग बनाने की जरूरत है जिसमें एक प्रारंभिक कार्य होगा, और नोड के प्रमुख को इसके अंदर 'कोई नहीं' के लिए प्रारंभ किया जाएगा।

उपयोगकर्ता द्वारा लिंक की गई सूची में नोड जोड़ने, नोड्स प्रदर्शित करने और डबल लिंक की गई सूची के अंत से नोड को हटाने के लिए कई विधियों को परिभाषित किया गया है।

एक डबल लिंक्ड लिस्ट में, नोड्स में पॉइंटर्स होते हैं। वर्तमान नोड में अगले नोड के साथ-साथ पिछले नोड के लिए एक सूचक होगा। सूची में अंतिम मान का अगले सूचक में 'NULL' मान होगा। इसे दोनों दिशाओं में घुमाया जा सकता है।

नीचे उसी के लिए एक प्रदर्शन है -

उदाहरण

वर्ग नोड:def __init__(self, my_data):self.prev =कोई नहीं self.data =my_data self.next =कोई नहीं वर्ग डबल_सूची:def __init__(self):self.head =कोई नहीं self.tail =कोई नहीं self.size =0; def add_data(self, my_data):new_node =Node(my_data) if(self.head ==none):self.head =self.tail =new_node; स्व.सिर.पिछला =कोई नहीं; self.tail.next =कोई नहीं; अन्य:self.tail.next =new_node; new_node.previous =self.tail; स्व.पूंछ =new_node; self.tail.next =कोई नहीं; def print_it(self):curr =self.head if (self.head ==कोई नहीं):प्रिंट ("सूची खाली है") रिटर्न प्रिंट ("दोगुने लिंक की गई सूची में नोड्स हैं:") जबकि curr!=कोई नहीं :प्रिंट (curr.data) curr =curr.next def delete_from_middle(self):if(self.head ==कोई नहीं):वापसी; अन्य:curr =self.head मध्य =(self.size//2) if(self.size% 2 ==0) else((self.size+1)//2) for i in range(1, mid) :curr =curr.next; if(curr ==self.head):self.head =curr.next self.tail.next =कोई नहीं elif(curr ==self.tail):self.tail =self.tail.prev; अन्य:curr.prev.next =curr.next; curr.next.prev =curr.prev; वर्तमान =कोई नहीं; self.size =self.size - 1;my_instance =double_list()print("तत्वों को दोगुनी लिंक की गई सूची में जोड़ा जा रहा है") my_instance.add_data(10)my_instance.add_data(24)my_instance.add_data(54)my_instance.add_data (77) my_instance.add_data (92) my_instance.print_it () जबकि (my_instance.head !=कोई नहीं):my_instance.delete_from_middle (); प्रिंट ("तत्व को बीच से हटाने के बाद की सूची है:") my_instance.print_it( );

आउटपुट

डबल लिंक्ड लिस्ट में एलिमेंट जोड़े जा रहे हैं डबल लिंक्ड लिस्ट में नोड्स हैं:1024547792 बीच से एलिमेंट को डिलीट करने के बाद की लिस्ट है:डबल लिंक्ड लिस्ट में नोड्स हैं:24547792 एलिमेंट को बीच से हटाने के बाद की लिस्ट है :डबल लिंक्ड लिस्ट में नोड्स हैं:547792 बीच से एलिमेंट को डिलीट करने के बाद लिस्ट है:डबल लिंक्ड लिस्ट में नोड्स हैं:7792 एलिमेंट को बीच से डिलीट करने के बाद लिस्ट है:डबल लिंक्ड लिस्ट में नोड्स हैं:92तत्व को बीच से हटाने के बाद की सूची है :सूची खाली है

स्पष्टीकरण

  • 'नोड' वर्ग बनाया गया है।
  • आवश्यक विशेषताओं वाला एक और वर्ग बनाया गया है।
  • 'add_data' नाम की एक विधि परिभाषित की गई है, जिसका उपयोग डबल लिंक्ड सूची में डेटा जोड़ने के लिए किया जाता है।
  • 'print_it' नाम की एक अन्य विधि परिभाषित की गई है, जो सर्कुलर लिंक्ड सूची के नोड्स को प्रदर्शित करती है।
  • 'delete_from_middle' नामक एक अन्य विधि को परिभाषित किया गया है, जो नोड को बीच से हटाती है, और पिछले नोड को सर्कुलर लिंक्ड सूची में वर्तमान नोड के रूप में बनाती है।
  • डबल_लिस्ट' वर्ग का एक ऑब्जेक्ट बनाया जाता है, और डबल लिंक्ड सूची की शुरुआत से नोड को हटाने के लिए विधियों को बुलाया जाता है।
  • एक 'init' विधि को परिभाषित किया गया है, कि रूट, हेड, और टेल नोड्स डबल लिंक्ड लिस्ट का कोई नहीं से जुड़ा हुआ है।
  • सूची को पुनरावृत्त किया जाता है, और लिंक की गई सूची के मध्य अनुक्रमणिका से प्रत्येक नोड को खाली होने तक हटा दिया जाता है।
  • यह 'print_it' पद्धति का उपयोग करके कंसोल पर प्रदर्शित होता है।

  1. एक टर्नरी ट्री से डबल लिंक्ड लिस्ट बनाने के लिए पायथन प्रोग्राम

    जब एक टर्नरी ट्री से एक डबल लिंक्ड सूची बनाने की आवश्यकता होती है, तो एक नोड वर्ग बनाने की आवश्यकता होती है। इस वर्ग में, दो विशेषताएँ हैं, डेटा जो नोड में मौजूद है, और लिंक की गई सूची के अगले नोड तक पहुँच। एक और लिंक्ड_लिस्ट क्लास बनाने की जरूरत है जिसमें एक इनिशियलाइज़ेशन फंक्शन होगा, और नोड के ह

  1. पायथन में एकल लिंक की गई सूची के मध्य नोड को खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक एकल लिंक्ड सूची नोड है, हमें मध्य नोड का मान ज्ञात करना है। और जब दो मध्य नोड होंगे, तो हम दूसरे को वापस कर देंगे। हमें इसे सिंगल पास में हल करने का प्रयास करना होगा। इसलिए, अगर इनपुट [5,9,6,4,8,2,1,4,5,2] जैसा है, तो आउटपुट 2 होगा। इसे हल करने के लिए, हम इन चरणों का पालन

  1. पायथन में एक लिंक्ड सूची में नोड हटाएं

    मान लीजिए कि हमारे पास कुछ तत्वों के साथ एक लिंक्ड सूची है। हमारा काम एक फ़ंक्शन लिखना है जो दिए गए नोड को सूची से हटा देगा। तो अगर सूची 1 → 3 → 5 → 7 → 9 की तरह है, और 3 को हटाने के बाद, यह 1 → 5 → 7 → 9 होगा। मान लें कि हमारे पास पॉइंटर नोड है जो इंगित करता है कि नोड को हटाया जाना है, हमें नोड को