Data Structures (ဒေတာ သိမ်းဆည်းပုံများ)

B2.2 - Data structures
မြန်မာလို: data structure (ဒေတာ သိမ်းဆည်းပုံ) များ


ခြုံငုံ မိတ်ဆက်

Program တိုင်းမှာ ဒေတာ အစုအဝေးတွေကို သိမ်းထားဖို့ လိုပါတယ်။ ဒီအပိုင်းမှာ အခြေခံ data structure (ဒေတာ သိမ်းဆည်းပုံ) တွေကို လေ့လာပါမယ်: ရိုးရှင်းတဲ့ array (အရွယ်အစား ပုံသေ၊ အမျိုးအစားတူ ဒေတာစု) တွေကနေ stack (အပေါ်ကနေပဲ ထည့်၊ ထုတ်တဲ့ အထပ်) နဲ့ queue (အရင်ထည့်တာ အရင်ထွက်တဲ့ တန်း) လို abstract structure (operation တွေနဲ့ သတ်မှတ်တဲ့ data structure) တွေအထိ ပါပါတယ်။

# ခေါင်းစဉ် Syllabus အဓိက အယူအဆများ Level
1 1D Arrays (တန်းတစ်တန်းတည်းမှာ စီထားတဲ့ ဒေတာအစုများ) B2.2.2 Static structure (အရွယ်အစား ပုံသေ data structure)၊ အရွယ်အစား ပုံသေ၊ index (နေရာအမှတ်) နဲ့ တိုက်ရိုက် ယူသုံးခြင်း SL + HL
2 2D Arrays (row နဲ့ column ပါတဲ့ ဇယားကွက် array များ) B2.2.2 Static structure၊ row (အလျားလိုက် အတန်း) နဲ့ column (ဒေါင်လိုက် ကော်လံ) များ (ဇယားကွက်/ဇယား) SL + HL
3 ArrayList (ကြီးလာ၊ သေးသွားနိုင်တဲ့ list) B2.2.2 Dynamic structure (ကြီးလာ၊ သေးသွားနိုင်တဲ့ data structure)၊ အလိုအလျောက် ကြီးလာ၊ သေးသွားပါတယ် SL + HL
4 Stacks (အပေါ်ကနေပဲ ထည့်၊ ထုတ်တဲ့ အထပ်များ) B2.2.3 Abstract structure၊ Last In, First Out (LIFO: နောက်ဆုံးဝင်တာ အရင်ထွက်) SL + HL
5 Queues (အရင်ထည့်တာ အရင်ထွက်တဲ့ တန်းများ) B2.2.4 Abstract structure၊ First In, First Out (FIFO: အရင်ဝင်တာ အရင်ထွက်) SL + HL

Syllabus နဲ့ Level ကော်လံတွေက IB Computer Science သင်တန်းအတွက်ပါ။ SL (Standard Level) နဲ့ HL (Higher Level) ဆိုတာ IB သင်တန်းရဲ့ အဆင့်နှစ်ဆင့်ပါ။ SL + HL ဆိုတာ အဆင့် နှစ်ဆင့်လုံးမှာ လေ့လာရတယ်လို့ ဆိုလိုပါတယ်။

အဆင့်ဆင့် ရှင်းပြထားတဲ့ ဥပမာတွေ၊ quiz မေးခွန်းတွေနဲ့ လေ့ကျင့်ခန်းတွေအတွက် အပေါ်က ခေါင်းစဉ် တစ်ခုကို ရွေးပါ။


သင့်တော်တဲ့ data structure ကို ရွေးခြင်း

အခြေအနေ အသင့်တော်ဆုံး ရွေးချယ်မှု
Item (အချက်) အရေအတွက် ပုံသေ ဖြစ်ပြီး index နဲ့ မြန်မြန် ယူသုံးချင်တဲ့အခါ Array
Program run နေစဉ် (runtime) item အရေအတွက် ပြောင်းလဲတဲ့အခါ ArrayList
LIFO လိုတဲ့အခါ (undo: လုပ်ခဲ့တာကို ပြန်ဖျက်ခြင်း၊ backtracking: နောက်ပြန်လှည့်ပြီး တခြားလမ်း စမ်းခြင်း) Stack
FIFO လိုတဲ့အခါ (အစဉ် အရေးကြီးတဲ့အခါ၊ job queue: လုပ်ရမယ့် အလုပ်တွေကို ရောက်တဲ့ အစဉ်အတိုင်း တန်းစီထားခြင်း) Queue
ဇယားပုံစံ ဒေတာ (grid: ဇယားကွက်၊ board: ကစားကွက်၊ matrix: ကိန်းဇယား) 2D Array

Static Structures နဲ့ Dynamic Structures နှိုင်းယှဉ်ချက်

လက္ခဏာ Static (Array) Dynamic (ArrayList၊ Java ရဲ့ Stack နဲ့ LinkedList queue)
အရွယ်အစား ဖန်တီးတဲ့အချိန်မှာ ပုံသေ သတ်မှတ်ပြီးသား Program run နေစဉ် ကြီးလာ ဒါမှမဟုတ် သေးသွားနိုင်
Memory (မှတ်ဉာဏ်) တစ်ကြိမ်တည်း နေရာ ချပေး လိုသလောက် နေရာ ချပေး
ယူသုံးပုံ Index နဲ့ တိုက်ရိုက် Structure အမျိုးအစားပေါ် မူတည်
မြန်နှုန်း အလွန် မြန် အပို အလုပ် (overhead) အနည်းငယ် ရှိ

အဓိက သိရမယ့် အချက်: အရွယ်အစားကို ကြိုသိထားရင် static structure တွေက ပိုရိုးရှင်းပြီး ပိုမြန်ပါတယ်။ Program run နေစဉ် အရွယ်အစား ပြောင်းလဲရင်တော့ dynamic structure တွေ မရှိမဖြစ် လိုပါတယ်။


Table of contents

  • 1D Arrays တန်းတစ်တန်းတည်းမှာ စီထားတဲ့ ဒေတာအစုများ
  • 2D Arrays row နဲ့ column ပါတဲ့ ဇယားကွက် array များ
  • ArrayList ကြီးလာ၊ သေးသွားနိုင်တဲ့ list
  • Stacks အပေါ်ကနေပဲ ထည့်၊ ထုတ်တဲ့ အထပ်များ
  • Queues အရင်ထည့်တာ အရင်ထွက်တဲ့ တန်းများ

© EduCS.me. ကွန်ပျူတာသိပ္ပံ ပညာရေးအတွက် အရင်းအမြစ်တွေ စုထားတဲ့ နေရာပါ။ EduCS is an independent educational resource. It is not affiliated with, or endorsed by, the International Baccalaureate Organization. (EduCS ဟာ သီးခြား ပညာရေး အရင်းအမြစ်တစ်ခုပါ။ International Baccalaureate Organization နဲ့ ဆက်စပ်မှု မရှိသလို သူတို့ရဲ့ ထောက်ခံချက်လည်း မရှိပါဘူး။) ဆက်သွယ်ရန်