Python

ডাটা স্ট্রাকচার পর্ব ২ – পাইথন

data structure-python

আজ আমরা এই পর্বে ডাটা স্ট্রাকচারের most important টপিক স্ট্যাক (stack) এবং কিউ (queue) নিয়ে আলোচনা করব।

 

কম্পিউটার সাইয়েন্সের ভাষায় স্ট্যাক এবং কিউ খুবই জনপ্রিয় একটি ডাটা স্ট্রাকচার। তোমরা অনেকেই হয়তো সি বা সি++ দিয়ে এর ব্যাবহার করে থাকতে পার। আজ আমরা পাইথন দিয়ে এদের কিছু উদাহরণ দেখব।

পাইথনে খুব সহজেই স্ট্যাক এবং কিউ করা যায়। তবে কিউ এই ক্ষেত্রে একটু কস্টলি।

 

আমরা এই পর্বে লিস্টের মাধ্যমে স্ট্যাক এবং কিউ এর ব্যবহার দেখব।

** স্ট্যাক পর্বঃ

>>> list = [1,2,3]

>>>

>>> list

[1, 2, 3]

 

** push() and pop() শব্দ দুইটি কম্পিউটার সাইয়েন্সে খুবই পরিচিত শব্দ। পুশ বলতে ইন্সার্ট এবং পপ বলতে রিমুভ বুঝায়।

স্ট্যাকে LIFO মানে লাস্ট ইন ফার্স্ট আউট। যে আগে প্রবেশ করবে সে সবার শেষে বের হবে।

>>> # push() using append()

>>>

>>> list.append(5)

>>> list.append(7)

>>>

>>> list

[1, 2, 3, 5, 7]

এখানে আমরা এপেন্ড এর সাহায্যে ৫ এবং ৭ ভেলু দুইটিকে পুশ করেছি।

>>>

>>> # pop using pop() function

>>>

>>> list.pop()

7

>>> list

[1, 2, 3, 5]

>>>

>>> list.pop()

5

>>>

>>> list

[1, 2, 3]

 

এখানে আমরা পপ করেছি।

লাস্ট ইন ফার্স্ট আউট, তাই ৭ সবার আগে তারপর ৫ এইভাবে পপ করতে থাকলে ৩,২,১ এই সিরিয়ালে ভেলু পপ হতে থাকবে।

 

** কিউ পর্বঃ

কিউ হচ্ছে FIFO ফার্স্ট ইন ফার্স্ট আউট

আমরা নিচে একটি কিউ যা লিস্ট দিয়ে তৈরি তা দেখতে পারছি।

>>> q = [1, 2, 3]

>>> q

[1, 2, 3]

>>>

>>> q.append(0)

>>> q.append(500)

>>> q

[1, 2, 3, 0, 500]

 

কিউ এর শুরুতে ১ আছে, তাই আমরা পপ করলে কিউ এর সংজ্ঞা মতে ১ ই আগে বের হবে।

কিন্তু লিস্টে পপ ফাংশন ব্যবহার করে শুরুর ভেলু বের করতে চাইলে আমাদের পপ ফাংশনে ইন্ডেক্স ব্যবহার করতে হবে।

 

>>>

>>> q.pop(0)

1

>>> q

[2, 3, 0, 500]

এখানে আমরা ইন্ডেক্স ০ ব্যবহার করে লিস্ট বা কিউ এর শুরুর ভেলু ১ পপ করেছি।

 

নোটঃ লিস্টে এই ভাবে পপ করলে ০ ইন্ডেক্সের জায়গা ডান দিক থেকে বাম দিকে শিফট হতে থাকে। যা খুবই ব্যয়বহুল। তাই এই ভাবে কিউ ব্যবহার না করাই ভাল।

Leave a Reply

Your email address will not be published.

14 − six =