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

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


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

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

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

लिंक्ड लिस्ट में नोड जोड़ने, डुप्लीकेट्स हटाने और नोड वैल्यूज़ प्रिंट करने के लिए यूज़र द्वारा कई मेथड्स परिभाषित किए जाते हैं।

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

उदाहरण

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

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

    def add_data(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 remove_duplicate_vals(self):
        curr = self.head
        if self.head is None:
            print("The list is empty")
        else:
            while True:
                temp = curr
                index_val = curr.next
                while index_val != self.head:
                    if curr.data == index_val.data:
                        temp.next = index_val.next
                    else:
                        temp = index_val
                    index_val = index_val.next
                curr = curr.next
                if curr.next == self.head:
                    break

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

class circular_linked_list:
    my_cl = list_creation()
    print("Nodes are being added to the list")
    my_cl.add_data(21)
    my_cl.add_data(54)
    my_cl.add_data(78)
    my_cl.add_data(99)
    my_cl.add_data(21)
    print("The list is :")
    my_cl.print_it()
    my_cl.remove_duplicate_vals()
    print("The updated list is :")
    my_cl.print_it()

आउटपुट

Nodes are being added to the list
The list is : 21 54 78 99 21
The updated list is : 21 54 78 99

व्याख्या

  • 'Node' क्लास बनाई गई है।
  • आवश्यक एट्रिब्यूट्स के साथ एक और क्लास बनाई गई है।
  • 'remove_duplicate_vals' नामक एक और मेथड परिभाषित किया गया है, जिसका उपयोग लिंक्ड लिस्ट में मौजूद डुप्लीकेट एलिमेंट्स को हटाने के लिए किया जाता है।
  • 'print_it' नामक एक और मेथड परिभाषित किया गया है, जो सर्कुलर लिंक्ड लिस्ट के नोड्स को प्रदर्शित करता है।
  • 'list_creation' क्लास का एक ऑब्जेक्ट बनाया जाता है, और डेटा जोड़ने के लिए उस पर मेथड्स कॉल किए जाते हैं।
  • एक 'init' मेथड परिभाषित किया गया है, जो सर्कुलर लिंक्ड लिस्ट के पहले और अंतिम नोड्स को None पर इनिशियलाइज़ करता है।
  • 'remove_duplicate_vals' मेथड को कॉल किया जाता है।
  • यह लिस्ट के माध्यम से इटरेट करता है, और जांचता है कि क्या कोई एलिमेंट दोहराया गया है।
  • यदि यह सच है, तो इसे हटा दिया जाता है।
  • यह 'print_it' मेथड का उपयोग करके कंसोल पर प्रदर्शित होता है।
  1. - पायथन में लिंक्ड लिस्ट से डुप्लिकेट एंट्री हटाने का प्रोग्राम

    मान लीजिए हमारे पास संख्याओं की एक लिंक्ड लिस्ट है, हमें उन संख्याओं को हटाना है जो लिंक्ड लिस्ट में कई बार दिखाई देती हैं (आउटपुट में केवल एक घटना रखें), हमें मूल लिंक्ड लिस्ट में उपस्थिति के क्रम को भी बनाए रखना है। 9] होगा।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −यदि node null नहीं ह

  1. - पायथन में दो लिंक्ड लिस्ट के तत्वों को इंटरलीव (बारी-बारी से मिलाने) करने का प्रोग्राम

    मान लीजिए हमारे पास दो लिंक्ड लिस्ट l1 और l2 हैं, हमें एक लिंक्ड लिस्ट लौटानी है जिसमें इन दोनों लिस्ट के तत्व बारी-बारी से मिले हों, शुरूआत l1 से होगी। यदि किसी लिंक्ड लिस्ट में बचे हुए नोड्स हैं, तो उन्हें अंत में जोड़ दिया जाना चाहिए। उदाहरण के लिए, यदि इनपुट l1 = [5,4,6,3,4,7], l2 = [8,6,9] है,

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

    एक लिस्ट दी गई है जिसमें डुप्लिकेट एलिमेंट हैं, हमारा कार्य एक और लिस्ट बनाना है जिसमें बिना डुप्लिकेट के एलिमेंट्स हों।उदाहरणA::[2, 3, 4, 3, 4, 6, 78, 90] Output::[2, 3, 4, 6, 78, 90]एल्गोरिदमचरण 1: एक लिस्ट बनाएं। चरण 2: एक नई लिस्ट बनाएं जो खाली हो। चरण 3: लिस्ट में हर एलिमेंट को ट्रैवर्स करें। च