যখন রিকারশন মেথড ব্যবহার না করে একটি লিংকড লিস্টে একটি এলিমেন্ট সার্চ করতে হয়, তখন লিংকড লিস্টে মান যোগ করার মেথড এবং লিংকড লিস্টের এলিমেন্ট ডিসপ্লে করার মেথড সংজ্ঞায়িত করা হয়। এতে একটি মেথডও থাকবে যা ইউজার দ্বারা ইনপুট দেওয়া এলিমেন্টের ইন্ডেক্স খুঁজে বের করতে সাহায্য করে।
উদাহরণ
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 মেথডটি কল করা হয়েছে এবং আউটপুট কনসোলে প্রদর্শিত হয়েছে।