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 တွေ မရှိမဖြစ် လိုပါတယ်။