কম্পিউটার টিউটোরিয়াল

পাইথনে একটি কঠোরভাবে ক্রমবর্ধমান লিঙ্কযুক্ত তালিকা


ধরুন আমাদের একটি এককভাবে লিঙ্ক করা তালিকার প্রধান আছে, আমাদের পরীক্ষা করতে হবে যে নোডের মানগুলি কঠোরভাবে ক্রমবর্ধমান ক্রমে সাজানো হয়েছে কি না৷

সুতরাং, ইনপুট যদি [2,61,105,157] এর মত হয়, তাহলে আউটপুট হবে True।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • একটি ফাংশন সংজ্ঞায়িত করুন solve()। এটা মাথা নেবে

  • যদি head.next শূন্য হয়, তাহলে

    • রিটার্ন ট্রু

  • যদি head.val>=head.next.val, তাহলে

    • রিটার্ন ফলস

  • রিটার্ন সল্ভ(head.next)

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

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
class Solution:
   def solve(self, head):
      if head.next == None:
         return True
      if head.val >= head.next.val:
         return False
      return self.solve(head.next)
ob = Solution()
head = make_list([2,61,105,157])
print(ob.solve(head))

ইনপুট

[2,61,105,157]

আউটপুট

True

  1. C++ এ পুনরাবৃত্ত সন্নিবেশ এবং ট্রাভার্সাল লিঙ্কযুক্ত তালিকা

  2. লিংকড লিস্ট C++ এ লাফ দেয়

  3. পাইথনে লিঙ্ক করা তালিকায় নোড অদলবদল করার জন্য প্রোগ্রাম

  4. পাইথনে লিঙ্ক করা তালিকা থেকে m নোডের পরে n নোড মুছে ফেলার প্রোগ্রাম