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

পাইথন প্রোগ্রাম: রিকারশন ছাড়া লিংকড লিস্টে একটি এলিমেন্ট সার্চ করা

যখন রিকারশন মেথড ব্যবহার না করে একটি লিংকড লিস্টে একটি এলিমেন্ট সার্চ করতে হয়, তখন লিংকড লিস্টে মান যোগ করার মেথড এবং লিংকড লিস্টের এলিমেন্ট ডিসপ্লে করার মেথড সংজ্ঞায়িত করা হয়। এতে একটি মেথডও থাকবে যা ইউজার দ্বারা ইনপুট দেওয়া এলিমেন্টের ইন্ডেক্স খুঁজে বের করতে সাহায্য করে।

উদাহরণ

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

class my_linked_list:
    def __init__(self):
        self.head = None
        self.last_node = None
    
    def add_value(self, my_data):
        if self.last_node is None:
            self.head = Node(my_data)
            self.last_node = self.head
        else:
            self.last_node.next = Node(my_data)
            self.last_node = self.last_node.next
    
    def print_it(self):
        curr = self.head
        while curr is not None:
            print(curr.data)
            curr = curr.next
    
    def find_index_val(self, my_key):
        curr = self.head
        index_val = 0
        while curr:
            if curr.data == my_key:
                return index_val
            curr = curr.next
            index_val = index_val + 1
        return -1

my_instance = my_linked_list()
my_list = [67, 4, 78, 98, 32, 0, 11, 8]
for data in my_list:
    my_instance.add_value(data)
print('লিংকড লিস্টটি হল: ')
my_instance.print_it()
print()
my_key = int(input('কোন মান সার্চ করতে চান? '))
index_val = my_instance.find_index_val(my_key)
if index_val == -1:
    print(str(my_key) + ' পাওয়া যায়নি।')
else:
    print('এলিমেন্টটি পাওয়া গেল ইন্ডেক্স ' + str(index_val) + '-এ।')
n = int(input('কতগুলো এলিমেন্ট যোগ করতে চান? '))
for i in range(n):
    data = int(input('ডেটা দিন: '))
    my_instance.add_value(data)
print('লিংকড লিস্টটি হল: ')
my_instance.print_it()

আউটপুট

লিংকড লিস্টটি হল: 67 4 78 98 32 0 11 8
কোন মান সার্চ করতে চান? 11
এলিমেন্টটি পাওয়া গেল ইন্ডেক্স 6-এ।
কতগুলো এলিমেন্ট যোগ করতে চান? 2
ডেটা দিন: 111
ডেটা দিন: 56
লিংকড লিস্টটি হল: 67 4 78 98 32 0 11 8 111 56

ব্যাখ্যা

  • Node ক্লাস তৈরি করা হয়েছে।

  • প্রয়োজনীয় অ্যাট্রিবিউটসহ my_linked_list ক্লাস তৈরি করা হয়েছে।

  • এতে একটি __init__ ফাংশন রয়েছে যা প্রথম এলিমেন্ট অর্থাৎ head-কে None-এ এবং লাস্ট নোডকে None-এ ইনিশিয়ালাইজ করে।

  • add_value নামক একটি মেথড সংজ্ঞায়িত করা হয়েছে, যা লিংকড লিস্টে ডেটা যোগ করতে ব্যবহৃত হয়।

  • print_it নামক একটি মেথড সংজ্ঞায়িত করা হয়েছে যা লিংকড লিস্টের ডেটা কনসোলে ডিসপ্লে করতে ব্যবহৃত হয়।

  • find_index_val নামক একটি মেথড সংজ্ঞায়িত করা হয়েছে যা ইউজার द्वारा ইনপুট দেওয়া এলিমেন্টের ইন্ডেক্স খুঁজে বের করতে সাহায্য করে।

  • my_linked_list ক্লাসের একটি অবজেক্ট তৈরি করা হয়েছে।

  • একটি লিস্ট সংজ্ঞায়িত করা হয়েছে।

  • এই লিস্টটি ইটারেট করা হয়েছে এবং ডেটা যোগ করার জন্য মেথডগুলো কল করা হয়েছে।

  • print_it মেথড ব্যবহার করে এটি কনসোলে ডিসপ্লে করা হয়েছে।

  • সার্চ করার এলিমেন্টের জন্য ইউজার ইনপুট চাওয়া হয়েছে।

  • এতে find_index_val মেথডটি কল করা হয়েছে এবং আউটপুট কনসোলে প্রদর্শিত হয়েছে।

  1. পাইথন প্রোগ্রাম: সার্কুলার লিংকড লিস্টের উপাদানগুলো সর্ট করা

  2. পাইথনে সার্কুলার লিঙ্কড লিস্টে একটি এলিমেন্ট খুঁজে বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম: বাইনারি সার্চ অ্যালগরিদম

  4. পাইথন প্রোগ্রাম: লিনিয়ার সার্চ অ্যালগরিদম