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

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

मान लीजिए हमारे पास एक लिंक्ड सूची है। हमें सूची को आरोही क्रम में क्रमबद्ध करना होगा।

इसलिए, यदि इनपुट [5, 8, 4, 1, 5, 6, 3] जैसा है, तो आउटपुट [1, 3, 4, 5, 5, 6, 8, ]

होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:

  • मान:=एक नई सूची
  • सिर:=नोड
  • जबकि नोड शून्य नहीं है, करें
    • मानों के अंत में नोड का मान डालें
    • नोड:=नोड के बगल में
  • सूची मानों को क्रमबद्ध करें
  • मान:=मानों के तत्वों को लेकर एक डबल एंडेड कतार बनाएं
  • नोड:=सिर
  • जबकि नोड शून्य नहीं है, करें
    • नोड का मान:=कतार का बायां तत्व और कतार के बाईं ओर से तत्व हटाएं
    • नोड:=नोड के बगल में
  • रिटर्न हेड

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:

उदाहरण

import collections

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

def make_list(elements):
   head = ListNode(elements[0])
   for element in elements[1:]:
      ptr = head
      while ptr.next:
         ptr = ptr.next
      ptr.next = ListNode(element)

   return head

def print_list(head):
   ptr = head
   print('[', end = "")
   while ptr:
      print(ptr.val, end = ", ")
      ptr = ptr.next
   print(']')

class Solution:
   def solve(self, node):

   values = []
   head = node
   while node:
      values.append(node.val)
      node = node.next

   values.sort()
   values = collections.deque(values)

   node = head
   while node:
      node.val = values.popleft()
      node = node.next

   return head

ob = Solution()
head = make_list([5, 8, 4, 1, 5, 6, 3])
print_list(ob.solve(head))

इनपुट

[5, 8, 4, 1, 5, 6, 3]

आउटपुट

[1, 3, 4, 5, 5, 6, 8, ]

  1. पायथन में लिंक की गई सूची को ज़िग-ज़ैग बाइनरी ट्री में बदलने का कार्यक्रम

    मान लीजिए कि हमारे पास एक एकल लिंक की गई सूची है, हमें इसे निम्नलिखित नियमों का उपयोग करके एक बाइनरी ट्री पथ में बदलना होगा - लिंक की गई सूची का प्रमुख मूल है। प्रत्येक बाद वाला नोड माता-पिता का बायां बच्चा होता है जब उसका मान कम होता है, अन्यथा यह सही बच्चा होगा। तो, अगर इनपुट [2,1,3,4,0,5] जैसा

  1. पायथन - दी गई सूची को नेस्टेड सूची में बदलें

    ऐसी स्थिति हो सकती है जब हमें सूची में तत्वों को अपने आप में एक सूची में बदलने की आवश्यकता होती है। दूसरे शब्दों में, एक सूची बनाएं जो नेस्टेड हो क्योंकि इसके तत्व भी सूचियां हैं। पुनरावृत्ति का उपयोग करना यह नया दृष्टिकोण है जिसमें हम सूची के प्रत्येक तत्व को लेते हैं और इसे सूचियों के प्रारूप में

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

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