কম্পিউটার

পাইথনে লিঙ্ক করা তালিকায় ধারাবাহিক নোডের পরম পার্থক্য 1 কিনা তা পরীক্ষা করুন


ধরুন, আমাদের একটি এককভাবে লিঙ্কযুক্ত তালিকা রয়েছে যেখানে প্রতিটি নোডে একটি পূর্ণসংখ্যার মান রয়েছে। দুটি ধারাবাহিক নোডের মধ্যে পরম পার্থক্য 1 কিনা তা আমাদের খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুট start_node->5->6->7->8->7->6->5->4 এর মত হয়, তাহলে আউটপুট হবে True।

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

  • temp :=start_node
  • যখন temp নাল না হয়, do
    • যদি temp.link null এর মত হয়, তাহলে
      • লুপ থেকে বেরিয়ে আসুন
    • যদি |(temp) এর মান - (temp.link)| এর মান 1 এর মত নয়, তারপর
      • মিথ্যে ফেরত দিন
    • temp :=temp.link
  • সত্য ফেরান

উদাহরণ

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

import math
class link_node:
   def __init__(self, value):
      self.value = value
      self.link = None
def create_node(value):
   temp = link_node(value)
   temp.value = value
   temp.link = None
   return temp
def make_list(elements):
   head = link_node(elements[0])
   for element in elements[1:]:
      ptr = head
      while ptr.link:
         ptr = ptr.link
      ptr.next = link_node(element)
   return head
def solve(start_node):
   temp = start_node
   while (temp):
      if (temp.link == None):
         break
      if (abs((temp.value) - (temp.link.value)) != 1) :
         return False
      temp = temp.link
   return True
start_node = make_list([5, 6, 7, 8, 7, 6, 5, 4])
print(solve(start_node))

ইনপুট

[5, 6, 7, 8, 7, 6, 5, 4]

আউটপুট

True

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

  2. পাইথন প্রোগ্রাম টিপলকে তাদের পরম পার্থক্যের ফ্রিকোয়েন্সি অনুসারে সাজাতে

  3. পাইথন - তালিকায় পরপর বিভাগ

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