ุฎูููุง ุงูุฃูู ูููู ูุนูู ุฅูู ุฃุตููุง Data Structureุ
What is Data Structure?
ุจุจุณุงุทุฉุ ุฒู ู ุง ุงูุงุณู ุจููููุ ุฏู ุทุฑููุฉ ุจููุธู ุจููุง ุงูุฏุงุชุง.
ุจุณ ููุง ุจูุชููู ุนู ุงููู ุจููุชุฑุ ูุฅุญูุง ุจููุธู ุงูุฏุงุชุง ุฏู ุฌูู ุงูู RAM.
RAM
ุฎูููุง ูุดูู ู ุซุงู ุนุดุงู ูููู ุฃูุชุฑ.
ุงูู RAM ุฏู ูู ุงูู
ูุงู ุงููู ุจุชุชุฎุฒู ููู ูู ุงูู variables ุจุชุงุนุชูุง.
ูุงุญูุง ุจููุชุจ ุงูู code ูุจูุณุชุฎุฏู
ุงูู array data structuresุ ุงูุฏุงุชุง ุฏู ุจุชุชุฎุฒู ูู ุงูู RAM.
ูุนูู ูู ุนูุฏูุง array ููู ู
ุซููุง ุงูุฃุฑูุงู
ุฏู: 1ุ 3ุ 5. ุฏู ุงูู
ุนููู
ุงุช ุงููู ุนุงูุฒูู ูุฎุฒููุง.
ุทูุจ ุฅุฒุงู ููุฎุฒููุง ูู ุงูู RAMุ
Bytes and Bits
ุฃูููุงุ ุงูู RAM ุจุชุชูุงุณ ุจุงูู Byte.
ุนุงุฏู ุฌุฏูุง ุฅู ุฌูุงุฒ ุงููู
ุจููุชุฑ ูููู ููู ู
ุซููุง 8 GB ู
ู ุงูู RAM.
ุงูู Gigabyte (ุฃู GB) ุฏู ุชูุฑูุจูุง 10^9 Bytesโฆ ูุนูู ุญูุงูู ู
ููุงุฑ Byte.
ุงูุณุคุงู ุงูุฃูู ุจููุ ุฅูู ูู ุงูู Byte ุฏูุ
ุงูู Byte ุจุจุณุงุทุฉ ุนุจุงุฑุฉ ุนู 8 bits.
ุทูุจุ ูุฅูู ูู ุงูู Bitุ
ุงูู Bit ู ู ูู ุชุนุชุจุฑู ุฎุงูุฉ ุฃู ู ูุงู ููุฏุฑ ูุฎุฒู ุฑูู ูุงุญุฏ ุจุณุ ูุงูุฑูู ุฏู ูุงุฒู ูููู ูุง 0 ูุง 1.
ุฃููุฏ ุณู ุนุช ุนู ุงูููุงู ุฏู ูุจู ูุฏูุ ุงูู 0 ูุงูู 1 ุฏู ูุบุฉ ุงููู ุจููุชุฑ.
ุฒู ู ุง ุงูุช ุดุงููุ ุงูู ูุถูุน ู ุงุดู ุจุงูุชุฑุชูุจ:
- ุงูู bits ุงููุฑุฏูุฉ ุจุชููู Bytes.
- ุงูู Bytes ุจุชููู ุงูู RAM.
- ุงูู RAM ุจูุณุชุฎุฏู ูุง ุนุดุงู ูุฎุฒู Data Structure ู ุชูุฏู ุฉ.
Storing Integers in RAM
ูุฑุฌุน ูู
ุซุงู ุงูู Array ุจุชุงุนูุง ุงููู ููู ุงูุฃุฑูุงู
1ุ 3ุ 5. ุฏู ุจูุณู
ููุง array of integers.
ูุณุฉ ุทุจุนูุง ู ุนุฑููุงุด ุจุงูุธุจุท ุฅูู ูู ุงูู Arrayุ ุจุณ ุฎูููุง ููู ู.
ุฅุฒุงู ููุฎุฒู ุฑูู ุฒู ุงูู Integer ุฏู (ู ุซููุง ุฑูู 1) ูู ุงูู RAMุ
ูุงุฒู ูุฎุฒูู ุนู ุทุฑูู ุงูู Bytes.
ูู ุงูุบุงูุจุ ุงูู Integer ุงููุงุญุฏ ู
ุด ุจูุชุฎุฒู ูู Byte ูุงุญุฏ ุจุณุ ูุฃุ ุฏู ุนุงุฏุฉ ุจูุงุฎุฏ 4 Bytes.
ูุนูู ุจุฏู ู ุง ูุณุชุฎุฏู 8 bits ุจุณุ ููุณุชุฎุฏู 32 bits.
ุฅุฒุงู ุจูู ููู ุซู ุฑูู 1 ุจุงุณุชุฎุฏุงู ุงูู 32 bits ุฏููุ
ุญุงูููุงุ ู
ู
ูู ูููู ุฅููุง ูุชููู 31 ุตูุฑ (0) ูุฑุง ุจุนุถุ ููู ุงูุขุฎุฑ ุฎุงูุต ููุญุท ูุงุญุฏ (1).
0000000000000000..00001
ุงูู ูู ููุง ุฅููุง ูุนุฑู ุฅู ููู ุทุฑููุฉ ูุงุฎุฏ ุจููุง ุงูุฑูู (ุฒู 1)ุ ูู ุซูู ูู ุดูู Bytesุ ูุจุนุฏูู ูุญุทู ูู ุงูู RAM.
Addresses in RAM
ุงูู RAM ู ู ูู ูุชุฎูููุง ูุฃููุง ูุทุนุฉ ูุงุญุฏุฉ ู ุชุตูุฉ ู ู ุงูุฏุงุชุงุ ุจุณ ูู ูู ุงู ูููุง ู ููููู ุฃุณุงุณููู:
- ุงูููู (Values): ุงูุฏุงุชุง ุงููู ุจูุฎุฒููุง.
- ุงูุนูุงููู (Addresses): ูู ููู ุฉ ุจุชุชุฎุฒู ูู ู ูุงู ุฃู Memory Address ู ุญุฏุฏ ูู ุฎุชูู ุนู ุบูุฑู.
ูุชูุงุญุธ ุฅู ุฃูู Memory Address ุจูููู 0.
Storing arrays in RAM
ูู ุง ุจูุฎุฒู Array ูู ุงูู RAMุ ู ุด ุฏุงูู ูุง ุจููุฏุฑ ูุฎุชุงุฑ ุงูู ูุงู ุจุงูุธุจุทุ ุจุณ ุฃูู ู ูุฒุฉ ูู ุงูู Arrays ุฅููุง ุฏุงูู ูุง ุจุชุชุฎุฒู ุจุดูู contiguous.
ูุนูู ุฅูู contiguousุ ูุนูู ุงูุฏุงุชุง ุจุชุงุนุชูุง ุจุชููู ูุฑุง ุจุนุถูุง ูู ุงูู RAM ู
ู ุบูุฑ ุฃู ููุงุตู ุฃู ู
ุณุงุญุงุช ูุงุถูุฉ ูู ุงููุต.
ูู
ุซููุงุ ูู ุจูุฎุฒู ุงูู array ุจุชุงุนูุง (1, 3, 5):
- ุงูุฑูู 1 ููุชุฎุฒู ูู ู ูุงู ู ุนูู.
- ุงูุฑูู 3 ููุชุฎุฒู ูู ุงูู ูุงู ุงููู ุจุนุฏู ู ุจุงุดุฑุฉ.
- ุงูุฑูู 5 ููุชุฎุฒู ูู ุงูู ูุงู ุงููู ุจุนุฏ ุงูู 3 ู ุจุงุดุฑุฉ.
ู ููุด ุญุงุฌุฉ ูุชุฏุฎู ุจูููู .
ุทูุจ ูู ูุฏูุ ููู ุงูู Memory Address ุจูุฒูุฏ ุจู 4 ูู ู ุฑุฉุ (0ุ 4ุ 8โฆ) ู ุด ุงูู ูุฑูุถ ูููู 0ุ 1ุ 2ุ
ุงูุชูุฑ ุชุงูู: ูู ููู
ุฉ (ูู ู
ุซุงููุง ุฏู Integer) ุจุชุงุฎุฏ 4 Bytes ุนุดุงู ุชุชุฎุฒู.
ูุงูู Memory Address ููุง ู
ุด ุจูุดุงูุฑ ุนูู Byte ูุงุญุฏุ ูุฃ ุฏู ุจูุดุงูุฑ ุนูู ุจุฏุงูุฉ ุงูู 4 Bytes ุจุชูุน ูู ุฑูู
.
- ุงูุฑูู
1 ู
ุชุฎุฒู ูู ุงูู
Bytesู ู 0 ูู 3 (ุนููุงู ุงูุจุฏุงูุฉ 0). - ุงูุฑูู
3 ู
ุชุฎุฒู ูู ุงูู
Bytesู ู 4 ูู 7 (ุนููุงู ุงูุจุฏุงูุฉ 4). - ุงูุฑูู
5 ู
ุชุฎุฒู ูู ุงูู
Bytesู ู 8 ูู 11 (ุนููุงู ุงูุจุฏุงูุฉ 8).
Arrays is Simple
ุงูู ูุถูุน ุฏู ู ู ูู ูุจุงู ุจุณูุท ูู ุจุงุดุฑุ ููู ูุนููุง ูุฏู ูู ุงูุบุงูุจ.
ูุฏู ุงูุณุจุจ ุฅู ุงูู Array ุจุชุนุชุจุฑ ุฃุจุณุท Data Structure.
ุทุฑููุฉ ุชุฎุฒูููุง ูู ุงูู ูู ูุฑู (ุงูู RAM) ุดุจู ุทุฑููุฉ ุงุณุชุฎุฏุงู ูุง ูููุง ุจุงูุธุจุท: ุดููุฉ ููู contiguous (ูุฑุง ุจุนุถูุง).
Ex. Storing Array of Characters in RAM
ุฅุญูุง ูู ุงูู ุซุงู ุงููู ูุงุช ููุง ุจูุฎุฒู Integers.
ุจุณ ุฅูู ุงููู ููุญุตู ูู ููุง ุจูุฎุฒู Characters (ุญุฑูู) ุฒู โAโ, โBโ, โCโุ
ุงูู Characters ุจุชุชุฎุฒู ุจููุณ ุงูุทุฑููุฉ ุจุงูุธุจุท: contiguous (ูุฑุง ุจุนุถูุง).
ููู ูุงุญุธ ุงููุฑู ูู ุงูู Memory Address:
ููุง ุงูู Memory Address ุจูุฒูุฏ ุจู 1 ุจุณ ูู ู ุฑุฉ (0, 1, 2โฆ).
ูููุ ุนุดุงู ุงูู Character ุงููุงุญุฏ ุบุงูุจูุง ุจูุงุฎุฏ 1 Byte ุจุณ ุนุดุงู ูุชุฎุฒู ูู ุงูู
ูู
ูุฑู (ู
ุด 4 Bytes ุฒู ุงูู Integer).
ุฏู ูู ุญุงูุฉ ุงูู ASCII characters ุบุงูุจูุงุ ูุฏู ุชูุตููุฉ ู
ุด ู
ูู
ุฉ ุฃูู ุฏูููุชู.
Summary
ุงูููุฑุฉ ุงูุฃุณุงุณูุฉ ูู: ููุฏุฑ ูุฎุฒู ุฃู ููู
ุจุดูู contiguous ูู ุงูู RAM.
ุงูุฃูู
ุจุณ ุฅู ุงูู Memory Addressูุฒูุฏ ุจู
ูุฏุงุฑ ุญุฌู
ุงูููู
ุฉ ุงููู ุจูุฎุฒููุง (ุงูู size of the value).
ูู ุงูููู
ุฉ ุจุชุงุฎุฏ 4 Bytesุ ุงูู address ููุฒูุฏ ุจู 4. ูู ุจุชุงุฎุฏ 1 Byteุ ููุฒูุฏ ุจู 1ุ ูููุฐุง.