যখন লিংকড লিস্ট ব্যবহার করে কিউ ডেটা স্ট্রাকচার ইমপ্লিমেন্ট করতে হয়, তখন লিংকড লিস্টে এলিমেন্ট যোগ করার (এনকিউ অপারেশন) মেথড এবং লিংকড লিস্টের এলিমেন্ট ডিলিট করার (ডিকিউ অপারেশন) মেথড সংজ্ঞায়িত করা হয়।
উদাহরণ
class Node:
def __init__(self, data):
self.data = data
self.next = None
class Queue_structure:
def __init__(self):
self.head = None
self.last = None
def enqueue_operation(self, data):
if self.last is None:
self.head = Node(data)
self.last = self.head
else:
self.last.next = Node(data)
self.last = self.last.next
def dequeue_operation(self):
if self.head is None:
return None
else:
val_returned = self.head.data
self.head = self.head.next
return val_returned
my_instance = Queue_structure()
while True:
print('enqueue <value>')
print('dequeue')
print('quit')
my_input = input('আপনি কোন অপারেশন পারফর্ম করতে চান? ').split()
operation = my_input[0].strip().lower()
if operation == 'enqueue':
my_instance.enqueue_operation(int(my_input[1]))
elif operation == 'dequeue':
dequeued = my_instance.dequeue_operation()
if dequeued is None:
print('কিউটি খালি।')
else:
print('ডিলিট করা এলিমেন্টটি হল: ', int(dequeued))
elif operation == 'quit':
break
আউটপুট
enqueue <value> dequeue quit আপনি কোন অপারেশন পারফর্ম করতে চান? enqueue 45 enqueue <value> dequeue quit আপনি কোন অপারেশন পারফর্ম করতে চান? enqueue 12 enqueue <value> dequeue quit আপনি কোন অপারেশন পারফর্ম করতে চান? dequeue ডিলিট করা এলিমেন্টটি হল: 45 enqueue <value> dequeue quit আপনি কোন অপারেশন পারফর্ম করতে চান? quit
ব্যাখ্যা
Node ক্লাস তৈরি করা হয়েছে।
প্রয়োজনীয় অ্যাট্রিবিউটসহ Queue_structure ক্লাস তৈরি করা হয়েছে।
এতে একটি __init__ ফাংশন রয়েছে যা প্রথম এলিমেন্ট অর্থাৎ head-কে None-এ ইনিশিয়ালাইজ করে।
enqueue_operation নামক একটি মেথড সংজ্ঞায়িত করা হয়েছে, যা কিউতে মান যোগ করতে সাহায্য করে।
dequeue_operation নামক একটি মেথড সংজ্ঞায়িত করা হয়েছে, যা কিউ থেকে মান ডিলিট করে এবং ডিলিট করা মান রিটার্ন করে।
Queue_structure-এর একটি ইনস্ট্যান্স তৈরি করা হয়েছে।
তিনটি অপশন দেওয়া হয়েছে: 'enqueue', 'dequeue', এবং 'quit'।
'enqueue' অপশনটি স্টকে একটি নির্দিষ্ট মান যোগ করে।
'dequeue' অপশনটি কিউ থেকে এলিমেন্ট ডিলিট করে।
'quit' অপশনটি লুপ থেকে বের করে।
ব্যবহারকারীর ইনপুট/চয়স অনুযায়ী সংশ্লিষ্ট অপারেশনগুলো পারফর্ম করা হয়।
এই আউটপুট কনসোলে প্রদর্শিত হয়।