Stacks & Queues In Python

က်ြန္ေတ္ာတုိ့ Python Basic ကုိေလ့လာျပီဆုိ အသုံး၀င္တယ့္ Data Structure ေတြျဖစ္တဲ့ Stacks နဲ့ Queues တုိ့ကုိနားလည္ထားသင့္ပါတယ္။

Stacks

Stacks ေတြက (LIFOs) လုိ့ေခါ္တဲ့ Last-in,First-out ပုံစံနဲ့ သြားၾကပါတယ္။ဥပမာအားျဖင့္ၾကည့္မယ္ဆုိ Python list ေတြကုိၾကည့္မယ္ဆုိရင္နားလည္နုိင္ပါတယ္။

က်ြန္ေတာ္တုိ့ Last-in,first-out ဆုိတဲ့ တုိင္း ေနာက္ဆုံးမွထည့္တယ့္ေကာင္က အရင္ဦးဆုံးထြက္လာတာကုိေတြ့ရမွာပါ။

ေနာက္တစ္နည္းကေတာ့ collections.deque ကုိသုံးတာပါ။ဒါကေတာ့ ပိုလဲျမန္တယ္ မွန္တဲ့နည္းလဲဆုိရမွာပါ။Deque ေတြက stacks အေနနဲ့ေကာ Queues အေနနဲ့ေကာ အလုပ္လုပ္နုိင္ၾကပါတယ္။က်ြန္ေတာ္တုိ့အခု Stacks ပုံစံကုိၾကည့္ရေအာင္

က်ြန္ေတာ္တုိ့အေပါ္ကတုိင္း deque objectတည္ေဆာက္ျပီး append method ကုိသုံးကာ ထည့္လုိက္ပါတယ္။ထုံးစံတုိင္း ေနာက္ဆုံးက ေကာင္ေရွ့ဆုံးကထြက္လာပါတယ္။

ေနာက္တစ္မ်ိုးကေတာ့ LifoQueue ကိုသုံးတာပါ။ဒါကေတာ့ က်ြန္ေတာ္တုိ့ thread ေတြသုံးေရးတာမ်ိဳး parallel ေရးတာမ်ိုးမွာ တစ္ခုနဲ့တစ္ခုဆက္သြယ္ျပီး အလုပ္လုပ္ဖုိ့အဆင္ေျပဆုံးပါ။

သူတုိ့က ထည့္တဲ့အခါမွာ put ကုိသုံးျပီးလုိခ်င္ရင္ေတာ့ get ကုိသုံးပါတယ္။ဒါေလးပဲကြာျခားတာပါ။

Queues

Queues ေတြကေတာ့ FIFOs လုိ့ေခါ္တဲ့ First-in,First-Out ပုံစံမ်ိုးနဲ့သြားပါတယ္။အရမ္းမကြာျခားပါဘူး List ေတြနဲ့ၾကည့္မယ္ဆုိ

 

က်ြန္ေတာ္တုိ့ ေရွ့ကထည့္တဲ့ေကာင္ ေရွ့ဆုံးက ထြက္လာတာေတြ့ရမွာပါ။ဒါေလးပါပဲ။

မွတ္ခ်က္။ ။မေရးသင့္တဲ့ပုံစံပါ ေနွးပါတယ္အရမ္း။

ေအာက္ကေတာ ့collections.deque ကိုသုံးေရးတာပါ။က်ြန္ေတာ္ေျပာခဲ့ပါတယ္ stack ေကာ queue  အေနနဲ့သုံးလုိ့ရျပီး ျမန္တယ္လုိ့ေျပာခဲ့ပါတယ္။

ဒီနည္းကေတာ့ queue ကိုသုံးျပီးေရးတာပါ။

က်ြန္ေတာ္တုိ့ ဒီေနာက္ဆုံးနည္းသည္ Thread Communication မွာအသုံးအရမ္း၀င္ပါတယ္။ဥပမာ မိတ္ေဆြရဲ့ web crawler မွာ thread တစ္ခုက url list ေတြကုိစုေပးျပီး ေနာက္ thread တစ္ခုက အဲ့urlကုိ လုိက္scrape လုပ္တဲ့အခါမ်ိဳး တစ္ျခား exampleေတြလဲအမ်ားၾကီးပါ အဲ့လုိေတြမွာအသုံး၀င္ပါတယ္။

အားလုံးကုိေက်းဇူးတင္ပါတယ္။

Share:
Tags:

Leave a Reply