কম্পিউটার

পাইথনে একটি লিঙ্ক করা তালিকা থেকে একটি প্রদত্ত লক্ষ্যের শেষ ঘটনাটি সরানোর জন্য প্রোগ্রাম


ধরুন আমাদের একটি এককভাবে লিঙ্কযুক্ত তালিকা আছে, এবং আরেকটি মান যার নাম লক্ষ্য, আমাদের প্রদত্ত তালিকায় লক্ষ্যের শেষ ঘটনাটি সরিয়ে ফেলতে হবে।

সুতরাং, যদি ইনপুট হয় [5,4,2,6,5,2,3,2,4,5,4,7], লক্ষ্য =5, তাহলে আউটপুট হবে [5, 4, 2, 6] , 5, 2, 3, 2, 4, 4, 7, ]

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

  • হেড :=নোড
  • k :=null, prev :=null
  • পাওয়া :=মিথ্যা
  • যদিও নোড নাল না হয়, তবে
      করুন
    • যদি নোডের মান লক্ষ্যের সমান হয়, তাহলে
      • পাওয়া :=সত্য
      • পূর্ববর্তী :=k
    • k :=নোড
    • নোড :=নোডের পাশে
  • যদি পাওয়া যায় মিথ্যা, তারপর
    • রিটার্ন হেড
  • যদি পূর্ববর্তী শূন্য হয়, তাহলে
    • মাথার পরের দিকে ফিরুন
  • পূর্বের পরের :=পূর্ববর্তী পরবর্তীটির পরবর্তী
  • রিটার্ন হেড

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

উদাহরণ

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, target):
      head = node
      k = None
      prev = None
      found = False
      while node:
         if node.val == target:
            found = True
         prev = k
         k = node
         node = node.next
         if found == False:
            return head
         if not prev:
            return head.next
            prev.next = prev.next.next
      return head
ob = Solution()
L = make_list([5,4,2,6,5,2,3,2,4,5,4,7])
target = 5
print_list(ob.solve(L, target))

ইনপুট

[5,4,2,6,5,2,3,2,4,5,4,7]

আউটপুট

[5, 4, 2, 6, 5, 2, 3, 2, 4, 4, 7, ]

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

  2. একটি তালিকা থেকে প্যালিনড্রোমিক উপাদানগুলি সরানোর জন্য পাইথন প্রোগ্রাম

  3. পাইথন প্রোগ্রাম তালিকায় x এর আগে প্রতিটি y ঘটনা মুছে ফেলতে

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