Tue Jan 07 2025 • 3 mins read
Programming ဆိုတာ Data တွေကို လိုအပ်သလို ပြင်ဆင်ပြောင်းလဲနိုင်ဖို့ ကွန်ပျူတာကို ညွှန်ကြားပေးရတဲ့ လုပ်ငန်းစဉ်တခုလို့ အကြမ်းဖျင်း မှတ်ယူလို့ရပါတယ်။ အဲဒီလို လိုအပ်ချက်ပေါ်မူတည်ပြီး Data တွေကို အသက်သာဆုံးနဲ့ ထိထိရောက်ရောက် ပြင်ဆင်ပြောင်းလဲ သိမ်းဆည်းပေးနိုင်ဖို့ Data Structure သဘောတရားတွေကို အသုံးပြုရပါတယ်။
Data Structure ရဲ့ သဘောတရားကို နားလည်ဖို့အတွက် နမူနာတခုကို စဉ်းစားကြည့်ပါမယ်။ ဆိုပါစို့၊ ကျနော်တို့ဆီမှာ စာအုပ်တွေ အများကြီးရှိမယ်။ ဝတ္ထုတို၊ ဝတ္တုရှည်၊ ဘာသာပြန်၊ ပုံနှိပ်စာအုပ် စသည်ဖြင့် ပါဝင်ပါမယ်။ လက်ရှိမှာ စာအုပ်တွေက နေရာအနှံ့ ပြန့်ကျဲနေမယ်၊ အဲဒီအတွက် စာအုပ်တွေကို တနေရာတည်းမှာ သိမ်းဆည်းထားနိုင်ဖို့ စီစဉ်ပါမယ်။
ပထမဆုံးအနေနဲ့ သေတ္တာတစ်လုံးကို အသုံးပြုပါမယ်။ စာအုပ်တွေအားလုံးကို သေတ္တာထဲမှာ စုပြုံပြီး ပစ်ထည့်၊ သိမ်းဆည်းထားလိုက်ပါမယ်။
လတ်တလောမှာ အဆင်ပြေသွားပေမယ့် တချိန်ချိန်မှာ သေတ္တာထဲက စာအုပ်တအုပ်ကို ပြန်ရှာလိုတဲ့အခါ အခက်တွေ့ပါမယ်။ ကျနော်တို့ လိုချင်တဲ့စာအုပ်ကို မွှေနှောက်ပြီး ရှာဖွေရတော့မှာဖြစ်ပါတယ်။ တကယ်လို့ အဲဒီစာအုပ်ဟာ သေတ္တာရဲ့ အောက်ဆုံးမှာ ရောက်နေရင်တော့ ပိုပြီးခက်ခက်ခဲခဲ ရှာဖွေရတော့မှာပါ။ ကျနော်တို့အတွက် အချိန်ပိုကုန်စေပါတယ်။ ဒီနည်းလမ်းဟာ သိပ်တော့အဆင်မပြေလှပါဘူး။
ဒီတော့ စာအုပ်တွေကို သိမ်းဆည်းဖို့အတွက် တခြားနည်းလမ်းတခုကို စဉ်းစားကြည့်ပါမယ်။ စာအုပ်တွေကို စာအုပ်စင်လေးပေါ်မှာ စာအုပ်အမျိုးအစားအလိုက် အကန့်ခွဲပြီး သိမ်းဆည်းပါမယ်။ ကနဦး စစချင်းမှာတော့ စာအုပ်တွေကို အမျိုးအစားအလိုက် တအုပ်ချင်း နေရာချရတာဖြစ်လို့ အချိန်ကုန်၊ လူပင်ပန်းစေနိုင်ပါတယ်။ ဒါပေမယ့် နောင်တချိန်မှာ လိုချင်တဲ့ စာအုပ်ကို စာအုပ်အမျိုးအစားအလိုက် အလွယ်တကူ ပြန်ရှာလို့ရသွားစေမှာ ဖြစ်ပါတယ်။ သေတ္တာထဲမှာ သိမ်းဆည်းသလိုမျိုး မတွေ့မချင်း မွှေနှောက်ရှာဖွေဖို့ မလိုအပ်တော့ပါဘူး။ ကျနော်တို့အတွက် အချိန်ကုန်သက်သာစေမှာဖြစ်ပါတယ်။
ဒီတော့ အပေါ်မှာဖော်ပြခဲ့တဲ့ နည်းလမ်း ၂ ခုကို နိူင်းယှဉ်သုံးသပ်ကြည့်ပါမယ်။
သေတ္တာထဲမှာ စုပုံသိမ်းဆည်းခြင်း
--
၁။ စာအုပ်အသစ်တွေကို ထပ်ပြီးပေါင်းထည့်ဖို့လိုအပ်လာတဲ့အခါ အင်မတန် လွယ်ကူပါတယ်။ သေတ္တာထဲမှာ ဒီတိုင်း ပစ်ထည့်လိုက်ရုံပါပဲ။ ထွေထွေထူးထူး လုပ်ဆောင်စရာမရှိပါဘူး။
၂။ စာအုပ်တွေကို ပြန်ရှာလိုတဲ့အခါ အချိန်တခုပေးရပါမယ်။ အပေါ်ဆုံးမှာ ရောက်နေတဲ့ စာအုပ်တွေဆိုရင် လွယ်လွယ်ကူကူ ရှာတွေ့နိုင်ပေမယ့် အောက်ဆုံးမှာ ရောက်နေတဲ့ စာအုပ်တွေဆိုရင်တော့ ပြန်ရှာတဲ့အခါ အချိန်ကုန်စေနိုင်ပါတယ်။
၃။ မလိုအပ်တော့တဲ့ စာအုပ်တွေကို ဖယ်ထုတ်ချင်တဲ့အခါမှာလည်း အချိန်တခုပေးရပါမယ်။ စာအုပ်တွေကို ပြန်ရှာသလိုပါပဲ၊ အပေါ်ဆုံးမှာရှိနေတဲ့ စာအုပ်တွေဆိုရင် လွယ်လွယ်ကူကူ ဖယ်ထုတ်နိုင်ပေမယ့် အောက်ဆုံးမှာ ရောက်နေတဲ့ စာအုပ်တွေဆိုရင်တော့ ပြန်ထုတ်ဖို့အတွက် လုံလောက်တဲ့အချိန်တခု ပေးရမှာဖြစ်ပါတယ်။
စင်ပေါ်မှာ အမျိုးအစားလိုက် သိမ်းဆည်းခြင်း
--
၁။ စာအုပ်အသစ်တွေကို ထပ်ပြီးပေါင်းထည့်ဖို့လိုအပ်လာတဲ့အခါ အချိန်တခုပေးရပါမယ်။ စာအုပ်အမျိုးအစားအလိုက် သိမ်းဆည်းထားတာဖြစ်လို့ စာအုပ်အမျိုးအစားအလိုက် သက်ဆိုင်ရာနေရာမှာ သိမ်းဆည်းပေးရမှာဖြစ်ပါတယ်။ အချိန်တခုကြာနိုင်ပါတယ်။
၂။ စာအုပ်တွေကို ပြန်ရှာလိုတဲ့အခါ လွယ်ကူ မြန်ဆန်ပါမယ်။ စာအုပ်အမျိုးအစားအလိုက် သက်ဆိုင်ရာနေရာမှာ ရှာဖွေလိုက်ရုံပါပဲ။
၃။ မလိုအပ်တော့တဲ့ စာအုပ်တွေကို ဖယ်ထုတ်ချင်တဲ့အခါမှာလည်း လွယ်ကူမြန်ဆန်ပါမယ်။ စာအုပ်တွေကို ပြန်ရှာသလိုမျိုး စာအုပ်အမျိုးအစားအလိုက် သက်ဆိုင်ရာနေရာကနေ ရှာပြီး ဖယ်ထုတ်လိုက်ရုံပါပဲ။
အပေါ်မှာ ဖော်ပြခဲ့တဲ့ အချက်တွေကို သုံးသပ်ကြည့်လိုက်တဲ့အခါ နည်းလမ်းနှစ်ခုစလုံးမှာ ကောင်းတဲ့အချက်နဲ့ မကောင်းတဲ့ အချက်တွေ ကိုယ်စီ ရှိနေပါတယ်။ စာအုပ်တွေကို မကြာခဏ ပြန်ရှာလေ့မရှိဘူးဆိုရင် သေတ္တာထဲမှာ ထည့်သိမ်းတာ အသင့်တော်ဆုံးဖြစ်သလို၊ မကြာခဏ ပြန်ရှာဖို့ လိုအပ်မယ်ဆိုရင်တော့ စာအုပ်စင်ပေါ်မှာ သိမ်းဆည်းတာ အသင့်တော်ဆုံးဖြစ်ပါတယ်။ သင့်တော်မယ့် နည်းလမ်းကို အခြေအနေပေါ်မူတည်ပြီး အသုံးချရမှာပဲဖြစ်ပါတယ်။
ဒီအချက်ဟာ ကွန်ပျူတာပရိုဂရမ်တွေ ရေးသားတဲ့အခါမှာ သတိပြုဖို့လိုအပ်လာပါတယ်။ အခြေအနေ လိုအပ်ချက်ပေါ် မူတည်ပြီး မှန်ကန်တဲ့ Data Structure တွေကို ဆုံးဖြတ်နိုင်ဖို့က အရေးကြီးပါတယ်။ သေတ္တာနဲ့ စာအုပ်စင်နမူနာလိုပါပဲ။ Data Structure တွေအားလုံးမှာ အခြေအနေပေါ် လိုက်ပြီး ကောင်းတဲ့အချက်နဲ့ မကောင်းအချက်တွေရှိပါတယ်။ ဘယ်အချိန်၊ ဘယ်နေရာမှာ ဘယ် Data Structure ကို အသုံးပြုရမလဲ ဆုံးဖြတ်နိုင်ဖို့က Developer တယောက်ရဲ့ ရှိထားသင့်တဲ့ စွမ်းဆောင်ရည်တခုဖြစ်ပါတယ်။
အတွေ့များတဲ့ Data Structure တချို့ကို ဖော်ပြပေးပါမယ်။ Array, Linked List, Stack, Queue, Tree, Hash-table (Hash-map or Dictionary), Set တို့ဖြစ်ပါတယ်။
#CodewithThura