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

सर्कुलर लिंक्ड लिस्ट के अंत से नोड डिलीट करने के लिए Python प्रोग्राम


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

सर्कुलर लिंक्ड लिस्ट में, हेड और रियर एक-दूसरे के निकट होते हैं। वे एक सर्कल बनाने के लिए जुड़े होते हैं, और अंतिम नोड में 'NULL' वैल्यू नहीं होता।

एक और 'linked_list' क्लास बनाने की आवश्यकता होती है जिसमें एक इनिशियलाइज़ेशन फ़ंक्शन हो, और नोड के हेड को 'None' से इनिशियलाइज़ किया जाता है।

इसके लिए एक प्रदर्शन नीचे दिया गया है:

उदाहरण

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None

class linked_list:
    def __init__(self):
        self.head = Node(None)
        self.tail = Node(None)
        self.head.next = self.tail
        self.tail.next = self.head

    def add_value(self, my_data):
        new_node = Node(my_data)
        if self.head.data is None:
            self.head = new_node
            self.tail = new_node
            new_node.next = self.head
        else:
            self.tail.next = new_node
            self.tail = new_node
            self.tail.next = self.head

    def delete_from_end(self):
        if self.head is None:
            return
        else:
            if self.head != self.tail:
                curr = self.head
                while curr.next != self.tail:
                    curr = curr.next
                self.tail = curr
                self.tail.next = self.head
            else:
                self.head = self.tail = None

    def print_it(self):
        curr = self.head
        if self.head is None:
            print("The list is empty")
            return
        else:
            print(curr.data, end=" ")
            while curr.next != self.head:
                curr = curr.next
                print(curr.data, end=" ")
            print("\n")

class circular_list:
    my_cl = linked_list()
    my_cl.add_value(11)
    my_cl.add_value(32)
    my_cl.add_value(43)
    my_cl.add_value(57)
    print("The original list is :")
    my_cl.print_it()
    while my_cl.head is not None:
        my_cl.delete_from_end()
        print("The list after deletion is :")
        my_cl.print_it()

आउटपुट

The original list is : 11 32 43 57
The list after deletion is : 11 32 43
The list after deletion is : 11 32
The list after deletion is : 11
The list after deletion is : The list is empty

व्याख्या

  • 'Node' क्लास बनाई गई है।
  • आवश्यक एट्रिब्यूट्स के साथ एक और 'linked_list' क्लास बनाई गई है।
  • 'add_data' नामक एक और मेथड परिभाषित किया गया है, जिसका उपयोग सर्कुलर लिंक्ड लिस्ट में डेटा जोड़ने के लिए किया जाता है।
  • 'delete_from_end' नामक एक और मेथड परिभाषित किया गया है, जो अंत से एलिमेंट्स को एक-एक करके हटाता है, इसके रेफरेंस को हटाकर।
  • 'print_it' नामक एक और मेथड परिभाषित किया गया है, जिसका उपयोग लिंक्ड लिस्ट डेटा को कंसोल पर प्रदर्शित करने के लिए किया जाता है।
  • 'linked_list' क्लास का एक ऑब्जेक्ट बनाया जाता है, और डेटा जोड़ने के लिए उस पर मेथड्स कॉल किए जाते हैं।
  • यह 'print_it' मेथड का उपयोग करके कंसोल पर प्रदर्शित होता है।
  1. C प्रोग्राम में लिंक्ड लिस्ट के अंत से nवें नोड को ढूंढना C प्रोग्राम में लिंक्ड लिस्ट के अंत से nवें नोड को ढूंढना

    n नोड्स दिए जाने पर, लिंक्ड लिस्ट के अंत से nवें नोड को प्रिंट करना है। प्रोग्राम को लिस्ट में नोड्स का क्रम नहीं बदलना चाहिए, बल्कि केवल लिंक्ड लिस्ट के अंत से nवें नोड को प्रिंट करना चाहिए। उदाहरण इनपुट: 10 20 30 40 50 60, N=3 आउटपुट: 40 उपरोक्त उदाहरण में, पहले नोड से शुरू करके count-n नोड्स त

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

    मान लीजिए हमें एक लिंक्ड लिस्ट दी गई है जिसका स्टार्ट नोड head है, और दो पूर्णांक m और n हैं। हमें लिस्ट को ट्रैवर्स करना है और कुछ नोड्स डिलीट करने हैं जैसे कि पहले m नोड्स लिस्ट में रखे जाएं और पहले m नोड्स के बाद अगले n नोड्स डिलीट कर दिए जाएं। हम इसे तब तक करते हैं जब तक लिंक्ड लिस्ट का अंत न आ

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

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