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

पायथन प्रोग्राम: लिंक्ड लिस्ट के पहले N एलिमेंट्स को रिवर्स करना


जब लिंक्ड लिस्ट में किसी विशिष्ट सेट के एलिमेंट्स को रिवर्स करना होता है, तो 'reverse_list' नामक एक मेथड डिफाइन की जाती है। यह लिस्ट के माध्यम से इटरेट करती है और विशिष्ट एलिमेंट्स को रिवर्स करती है।

उदाहरण

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

class LinkedList_structure:
    def __init__(self):
        self.head = None
        self.last_node = None

    def add_vals(self, data):
        if self.last_node is None:
            self.head = Node(data)
            self.last_node = self.head
        else:
            self.last_node.next = Node(data)
            self.last_node = self.last_node.next

    def print_it(self):
        curr = self.head
        while curr:
            print(curr.data)
            curr = curr.next

def reverse_list(my_list, n):
    if n == 0:
        return
    before_val = None
    curr = my_list.head
    if curr is None:
        return
    after_val = curr.next
    for i in range(n):
        curr.next = before_val
        before_val = curr
        curr = after_val
        if after_val is None:
            break
        after_val = after_val.next
    my_list.head.next = curr
    my_list.head = before_val

my_instance = LinkedList_structure()
my_list = input('लिंक्ड लिस्ट के एलिमेंट्स दर्ज करें... ').split()
for elem in my_list:
    my_instance.add_vals(int(elem))
n = int(input('लिस्ट में रिवर्स करने के लिए एलिमेंट्स की संख्या दर्ज करें... '))
reverse_list(my_instance, n)
print('नई लिस्ट है: ')
my_instance.print_it()

आउटपुट

लिंक्ड लिस्ट के एलिमेंट्स दर्ज करें... 45 67 89 12 345
लिस्ट में रिवर्स करने के लिए एलिमेंट्स की संख्या दर्ज करें... 3
नई लिस्ट है: 89 67 45 12 345

व्याख्या

  • 'Node' क्लास बनाई गई है।

  • आवश्यक एट्रिब्यूट्स के साथ 'LinkedList_structure' क्लास बनाई गई है।

  • इसमें एक 'init' फंक्शन है जो पहले एलिमेंट यानी 'head' को 'None' से इनिशियलाइज़ करता है।

  • 'add_vals' नामक एक मेथड डिफाइन की गई है, जो लिंक्ड लिस्ट में वैल्यू जोड़ने में मदद करती है।

  • 'print_it' नामक एक अन्य मेथड डिफाइन की गई है, जो लिंक्ड लिस्ट के वैल्यूज़ को कंसोल पर डिस्प्ले करने में मदद करती है।

  • 'reverse_list' नामक एक अन्य मेथड डिफाइन की गई है, जो लिंक्ड लिस्ट के विशिष्ट एलिमेंट्स को रिवर्स करने में मदद करती है।

  • 'LinkedList_structure' का एक इंस्टेंस बनाया गया है।

  • लिंक्ड लिस्ट में एलिमेंट्स जोड़े गए हैं।

  • यूज़र से रिवर्स किए जाने वाले एलिमेंट्स की संख्या ली गई है।

  • इस लिंक्ड लिस्ट पर 'reverse_list' मेथड कॉल की गई है।

  • आउटपुट कंसोल पर डिस्प्ले किया गया है।


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

    2 होगी।इसे हल करने के लिए, हम इस दृष्टिकोण का पालन करेंगे −सूची को रिकर्सिव तरीके से उलटने के लिए एक प्रक्रिया परिभाषित करें solve(head, back)यदि head मौजूद नहीं है, तो head वापस करेंtemp := head.nexthead.next := backback := headयदि temp खाली है, तो head वापस करेंhead := tempsolve(head, back)

  1. - पायथन में लिंक्ड लिस्ट उल्टा करें

    मान लीजिए हमारे पास एक लिंक्ड लिस्ट है, हमें इसे उल्टा करना है। यदि लिस्ट 1 → 3 → 5 → 7 जैसी है, तो नई उल्टी लिस्ट 7 → 5 → 3 → 1 होगी। इसे हल करने के लिए हम इस दृष्टिकोण का पालन करेंगे: लिस्ट रिवर्सल को पुनरावर्ती तरीके से करने के लिए एक प्रक्रिया परिभाषित करें solve(head, back) यदि head मौजूद नही

  1. - Python प्रोग्राम से सूची में पहले और अंतिम तत्वों को इंटरचेंज करना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें अंतिम तत्व को पहले तत्व के साथ स्वैप करने की आवश्यकता है। समस्या को हल करने के लिए 4 दृष्टिकोण हैं जैसा कि नीचे चर्चा की गई है। दृष्टिकोण 1 - ब्रूट-फोर्स दृष्टिकोण उदाहरण def swapLast(Lis