เชฎเชจเซ เชจเซเชเซเชจเซ เชชเซเชฐเชเชพเชฐเชจเซ เชธเชฎเชธเซเชฏเชพ เชเชตเซ. เชกเซเชเชพ เชธเซเชเซเชฐเซเช เชเชจเซเชเซเชจเชฐ เชฒเชพเชเซ เชเชฐเชตเซเช เชเชฐเซเชฐเซ เชเซ เชเซ เชจเซเชเซเชจเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ:
- เชจเชตเซเช เชคเชคเซเชต เชฆเชพเชเชฒ เชเชฐเซ
- เชธเซเชฐเซเชฏเชฒ เชจเชเชฌเชฐ เชฆเซเชตเชพเชฐเชพ เชคเชคเซเชต เชฆเซเชฐ เชเชฐเซ
- เชเชฐเซเชกเชฟเชจเชฒ เชจเชเชฌเชฐ เชฆเซเชตเชพเชฐเชพ เชคเชคเซเชต เชฎเซเชณเชตเซ
- เชฎเชพเชนเชฟเชคเซ เชธเซเชฐเซเช เชธเซเชตเชฐเซเชชเชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชฅเชพเชฏ เชเซ
เชกเซเชเชพ เชธเชคเชค เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ เชฆเซเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชฐเชเชจเชพเช เชเชกเชชเซ เชเชพเชฎเชเซเชฐเซเชจเซ เชเชคเชฟเชจเซ เชธเซเชจเชฟเชถเซเชเชฟเชค เชเชฐเชตเซ เชเซเชเช. เชชเชนเซเชฒเชพ เชฎเซเช เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชเชจเซเชเซเชจเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชตเซ เชตเชธเซเชคเซเชจเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเชฏเซ เชงเซ. เช เชฎเชพเชฐเซเช เชธเชซเชณเชคเชพเชจเซ เชคเชพเช เชชเชนเซเชฐเซเชฏเซ เชจ เชนเชคเซ เช เชจเซ เชธเชฎเชเชฃ เชเชตเซ เชเซ เชฎเชพเชฐเซ เชเชพเชคเซ เชเชเชเช เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชเช เช เชตเชธเซเชคเซ เชเซ เชงเซเชฏเชพเชจเชฎเชพเช เชเชตเซ เชคเซ เชฆเซเชตเชฟเชธเชเชเซ เชถเซเชง เชตเซเชเซเชทเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชนเชคเซ. เชเชพเชฐเชฃ เชเซ เชคเซ เชธเซเชฐเซเช เชเชฐเซเชฒเชพ เชธเซเชตเชฐเซเชชเชฎเชพเช เชกเซเชเชพเชจเชพ เชเชกเชชเซ เชจเชฟเชตเซเชถ, เชเชพเชขเซ เชจเชพเชเชตเชพ เช เชจเซ เชธเชเชเซเชฐเชนเชจเซ เชเชฐเซเชฐเชฟเชฏเชพเชคเชจเซ เชชเซเชฐเซเชฃ เชเชฐเซ เชเซ. เชฌเชงเชพ เชคเชคเซเชตเซเชจเซ เชเซเชตเซ เชฐเซเชคเซ เช เชจเซเชเซเชฐเชฎเชฟเชค เชเชฐเชตเซเช เช เชจเซ เชเซเชฏเชพเชฐเซ เชตเซเชเซเชท เชฌเชฆเชฒเชพเชฏ เชคเซเชฏเชพเชฐเซ เชธเซเชเชเชพเชเชเซเชจเซ เชชเซเชจ: เชเชฃเชคเชฐเซ เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซ เชคเซ เชถเซเชงเชตเชพเชจเซเช เชฌเชพเชเซ เชเซ.
struct node_s {
data_t data;
uint64_t weight; // ะฒะตั ัะทะปะฐ
node_t *left;
node_t *right;
node_t *parent;
};
เชฒเซเชเชฎเชพเช เชเซเชก เชเชฐเชคเชพเช เชตเชงเซ เชเชฟเชคเซเชฐเซ เช เชจเซ เชธเชฟเชฆเซเชงเชพเชเชค เชนเชถเซ. เชเซเชก เชจเซเชเซเชจเซ เชฒเชฟเชเช เชชเชฐ เชเซเช เชถเชเชพเชฏ เชเซ.
เชตเชเชจ
เช เชนเชพเชเชธเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ, เชตเซเชเซเชทเชฎเชพเช เชฅเซเชกเซ เชซเซเชฐเชซเชพเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ, เชคเซเชจเชพ เชตเชฟเชถเซ เชตเชงเชพเชฐเชพเชจเซ เชฎเชพเชนเชฟเชคเซ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชตเชเชจ เชจเซเชก เชจเซเชกเชจเซเช เชตเชเชจ เชเซ เช เชจเซเชกเชจเชพ เชตเชเชถเชเซเชจเซ เชธเชเชเซเชฏเชพ + 1 (เชเช เชคเชคเซเชตเชจเซเช เชตเชเชจ).
เชจเซเชก เชตเชเชจ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชเชพเชฐเซเชฏ:
uint64_t bntree::get_child_weight(node_t *node) {
if (node) {
return node->weight;
}
return 0;
}
เชถเซเชเชจเซเช เชตเชเชจ เช เชจเซเชฐเซเชช เชธเชฎเชพเชจ เชเซ 0.
เชเชเชณ, เชเชพเชฒเซ เชเชตเชพ เชตเซเชเซเชทเชจเชพ เชเชฆเชพเชนเชฐเชฃเชจเซ เชฆเซเชฐเชถเซเชฏ เชฐเชเซเชเชค เชคเชฐเชซ เชเชเชณ เชตเชงเซเช. เชเชพเชณเซ เชจเซเชก เชเซ เชฐเชเชเชฎเชพเช เชฌเชคเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ (เชฎเซเชฒเซเชฏ เชฌเชคเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ เชจเชนเซเช, เชเชพเชฐเชฃ เชเซ เช เชเชฐเซเชฐเซ เชจเชฅเซ), เชฒเชพเชฒ เชฎเชพเช - เชเชพเชเช เชจเซเช เชตเชเชจ, เชฒเซเชฒเซ - เชจเซเชก เชเชจเซเชกเซเชเซเชธ.
เชเซเชฏเชพเชฐเซ เชเชชเชฃเซเช เชตเซเชเซเชท เชเชพเชฒเซ เชนเซเชฏ, เชคเซเชฏเชพเชฐเซ เชคเซเชจเซเช เชตเชเชจ 0 เชนเซเชฏ เชเซ. เชเชพเชฒเซ เชคเซเชฎเชพเช เชฎเซเชณ เชคเชคเซเชต เชเชฎเซเชฐเซเช:
เชตเซเชเซเชทเชจเซเช เชตเชเชจ 1 เชฌเชจเซ เชเซ, เชฎเซเชณ เชคเชคเซเชตเชจเซเช เชตเชเชจ 1 เชฌเชจเซ เชเซ. เชฎเซเชณ เชคเชคเซเชตเชจเซเช เชตเชเชจ เชตเซเชเซเชทเชจเซเช เชตเชเชจ เชเซ.
เชเชพเชฒเซ เชฅเซเชกเชพ เชตเชงเซ เชเชเชเซ เชเชฎเซเชฐเซเช:
เชฆเชฐเซเช เชตเชเชคเซ เชเซเชฏเชพเชฐเซ เชจเชตเซเช เชคเชคเซเชต เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชเชชเชฃเซ เชเชพเชเช เซ เชจเซเชเซ เชเชเช เชเซเช เช
เชจเซ เชชเชธเชพเชฐ เชฅเชคเชพ เชฆเชฐเซเช เชจเซเชกเชจเชพ เชตเชเชจ เชเชพเชเชจเซเชเชฐเชฎเชพเช เชตเชงเชพเชฐเซ เชเชฐเซเช เชเซเช. เชเซเชฏเชพเชฐเซ เชจเชตเซ เชจเซเชก เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชคเซเชจเซ เชเช เชตเชเชจ เชธเซเชเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ 1. เชเซ เชเชตเซ เชเซ เชธเชพเชฅเซเชจเซ เชจเซเชก เชชเชนเซเชฒเซเชฅเซ เช เช
เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชเซ, เชคเซ เชชเชเซ เชเชชเชฃเซ เชฎเซเชฒเซเชฏเชจเซ เชเชตเชฐเชฐเชพเชเช เชเชฐเซเชถเซเช เช
เชจเซ เชฐเซเช เชชเชฐ เชชเชพเชเชพ เชเชเชถเซเช, เช
เชฎเซ เชชเชธเชพเชฐ เชเชฐเซเชฒเชพ เชคเชฎเชพเชฎ เชจเซเชกเซเชธเชจเชพ เชตเชเชจเชฎเชพเชเชจเชพ เชซเซเชฐเชซเชพเชฐเซเชจเซ เชฐเชฆ เชเชฐเซเชถเซเช.
เชเซ เชเซเช เชจเซเชก เชฆเซเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชฐเชนเซเชฏเซ เชนเซเชฏ, เชคเซ เช
เชฎเซ เชจเซเชเซ เชเชเช เชเซเช เช
เชจเซ เชชเชธเชพเชฐ เชฅเชฏเซเชฒเชพ เชเชพเชเช เซเชจเชพ เชตเชเชจเชฎเชพเช เชเชเชพเชกเซ เชเชฐเซเช เชเซเช.
เชธเซเชเชเชพเชเชเซ
เชนเชตเซ เชเชพเชฒเซ เชจเซเชกเซเชธ เชเซเชตเซ เชฐเซเชคเซ เชเชจเซเชกเซเชเซเชธ เชเชฐเชตเชพ เชคเซ เชคเชฐเชซ เชเชเชณ เชตเชงเซเช. เชจเซเชกเซเชธ เชธเซเชชเชทเซเชเชชเชฃเซ เชคเซเชฎเชจเชพ เช
เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพเชจเซ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเชคเชพ เชจเชฅเซ, เชคเซ เชเชพเชเช เซเชจเชพ เชตเชเชจเชจเชพ เชเชงเชพเชฐเซ เชเชฃเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชเซ เชคเซเช เชคเซเชฎเชจเซ เช
เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเซ เชเซ, เชคเซ เชคเซ เชเชฐเซเชฐเซ เชฐเชนเซเชถเซ เช (เชเชจ) เชตเซเชเซเชทเชฎเชพเช เชฆเชฐเซเช เชซเซเชฐเชซเชพเชฐ เชชเชเซ เชคเชฎเชพเชฎ เชเชพเชเช เซเชจเชพ เชเชจเซเชกเซเชเซเชธเชจเซ เช
เชชเชกเซเช เชเชฐเชตเชพเชจเซ เชธเชฎเชฏ.
เชเชพเชฒเซ เชฆเซเชฐเชถเซเชฏ เชฐเชเซเชเชค เชคเชฐเชซ เชเชเชณ เชตเชงเซเช. เช
เชฎเชพเชฐเซเช เชตเซเชเซเชท เชเชพเชฒเซ เชเซ, เชเชพเชฒเซ เชคเซเชฎเชพเช 1 เชฒเซ เชจเซเชก เชเชฎเซเชฐเซเช:
เชชเซเชฐเชฅเชฎ เชจเซเชกเชฎเชพเช เชเชจเซเชกเซเชเซเชธ เชนเซเชฏ เชเซ 0, เช เชจเซ เชนเชตเซ 2 เชเซเชธ เชถเชเซเชฏ เชเซ. เชชเซเชฐเชฅเชฎเชฎเชพเช, เชฎเซเชณ เชคเชคเซเชตเชจเซ เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพ เชฌเชฆเชฒเชพเชถเซ, เชฌเซเชเชพเชฎเชพเช เชคเซ เชฌเชฆเชฒเชพเชถเซ เชจเชนเซเช.
เชฎเซเชณเชฎเชพเช, เชกเชพเชฌเชพ เชธเชฌเชเซเชฐเซเชจเซเช เชตเชเชจ 1 เชเซ.
เชฌเซเชเซ เชเซเชธ:
เชฎเซเชณเชจเซ เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพ เชฌเชฆเชฒเชพเช เชจเชฅเซ เชเชพเชฐเชฃ เชเซ เชคเซเชจเชพ เชกเชพเชฌเชพ เชธเชฌเชเซเชฐเซเชจเซเช เชตเชเชจ 0 เชฐเชนเซเชฏเซเช เชเซ.
เชจเซเชกเชจเชพ เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพเชจเซ เชเชฃเชคเชฐเซ เชคเซเชจเชพ เชกเชพเชฌเชพ เชธเชฌเชเซเชฐเซเชจเชพ เชตเชเชจ + เชฎเชพเชคเชพเชชเชฟเชคเชพ เชชเชพเชธเซเชฅเซ เชชเชธเชพเชฐ เชเชฐเชพเชฏเซเชฒ เชธเชเชเซเชฏเชพ เชคเชฐเซเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เช เชธเชเชเซเชฏเชพ เชถเซเช เชเซ?, เช เชเชจเซเชกเซเชเซเชธ เชเชพเชเชจเซเชเชฐ เชเซ, เชถเชฐเซเชเชคเชฎเชพเช เชคเซ เชฌเชฐเชพเชฌเชฐ เชเซ 0, เชเชพเชฐเชฃ เชเซ เชฎเซเชณเชจเซ เชเซเช เชชเชฟเชคเซ เชจเชฅเซ. เชชเชเซ เชคเซ เชฌเชงเซเช เชคเซเชจเชพ เชชเชฐ เชจเชฟเชฐเซเชญเชฐ เชเชฐเซ เชเซ เชเซ เชเชชเชฃเซ เชกเชพเชฌเซ เชฌเชพเชเซเชจเชพ เชฌเชพเชณเช เช เชฅเชตเชพ เชเชฎเชฃเซ เชคเชฐเชซ เชเซเชฏเชพเช เชเชเช เชเซเช. เชเซ เชกเชพเชฌเซ เชฌเชพเชเซเช, เชคเซ เชชเชเซ เชเชพเชเชจเซเชเชฐเชฎเชพเช เชเชเช เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเชคเซเช เชจเชฅเซ. เชเซ เชเชชเชฃเซ เชตเชฐเซเชคเชฎเชพเชจ เชจเซเชกเชจเซ เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพเชจเซ เชเชฎเชฃเซ เชฌเชพเชเซเช เชเชฎเซเชฐเซเช.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเซ 8 (เชฐเซเชเชจเซเช เชเชฎเชฃเซเช เชฌเชพเชณเช) เชธเชพเชฅเซเชจเชพ เชคเชคเซเชตเชจเซ เช
เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพ เชเซเชตเซ เชฐเซเชคเซ เชเชฃเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เช เชเซ "เชฐเซเช เชเชจเซเชกเซเชเซเชธ" + "เชเซ 8 เชธเชพเชฅเซ เชจเซเชกเชจเชพ เชกเชพเชฌเชพ เชธเชฌเชเซเชฐเซเชจเซเช เชตเชเชจ" + "1" == 3 + 2 + 1 == 6
เชเซ 6 เชธเชพเชฅเซเชจเชพ เชคเชคเซเชตเชจเซ เช
เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพ "เชฐเซเช เชเชจเซเชกเซเชเซเชธ" + 1 == 3 + 1 == เชนเชถเซ. 4
เชคเชฆเชจเซเชธเชพเชฐ, เช เชจเซเชเซเชฐเชฎเชฃเชฟเชเชพ เชฆเซเชตเชพเชฐเชพ เชคเชคเซเชต เชฎเซเชณเชตเชตเชพ เช เชจเซ เชเชพเชขเซ เชจเชพเชเชตเชพเชฎเชพเช เชธเชฎเชฏ เชฒเชพเชเซ เชเซ เช (เชฒเซเช เชเชจ), เชเชพเชฐเชฃ เชเซ เชเชเซเชเชฟเชค เชคเชคเซเชต เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชเชชเชฃเซ เชชเชนเซเชฒเชพ เชคเซเชจเซ เชถเซเชงเชตเซเช เชชเชกเชถเซ (เชฎเซเชณเชฅเซ เชจเซเชเซ เช เชคเชคเซเชต เชชเชฐ เชเชตเซเช).
เชเชเชกเชพเช
เชตเชเชจเชจเชพ เชเชงเชพเชฐเซ, เชคเชฎเซ เชตเซเชเซเชทเชจเซ เชเชเชกเชพเชเชจเซ เชชเชฃ เชเชฃเชคเชฐเซ เชเชฐเซ เชถเชเซ เชเซ. เชธเชเชคเซเชฒเชจ เชฎเชพเชเซ เชเชฐเซเชฐเซ.
เช เชเชฐเชตเชพ เชฎเชพเชเซ, เชตเชฐเซเชคเชฎเชพเชจ เชจเซเชกเชจเซเช เชตเชเชจ เชชเซเชฐเชฅเชฎ เชจเชเชฌเชฐเชฅเซ 2 เชจเซ เชเชพเชค เชธเซเชงเซ เชเซเชณเชพเชเชพเชฐ เชนเซเชตเซเช เชเซเชเช เชเซ เชเชชเซเชฒ เชตเชเชจ เชเชฐเชคเชพ เชตเชงเชพเชฐเซ เช
เชฅเชตเชพ เชฌเชฐเชพเชฌเชฐ เชเซ เช
เชจเซ เชคเซเชฎเชพเชเชฅเซ เชฆเซเชตเชฟเชธเชเชเซ เชฒเชเซเชเชฃเช เชฒเซ. เช เชเชชเชฃเชจเซ เชตเซเชเซเชทเชจเซ เชเชเชกเชพเช เชเชชเชถเซ, เชเชฎ เชฎเชพเชจเซเชจเซ เชเซ เชคเซ เชธเชเชคเซเชฒเชฟเชค เชเซ. เชจเชตเซเช เชคเชคเซเชต เชฆเชพเชเชฒ เชเชฐเซเชฏเชพ เชชเชเซ เชตเซเชเซเชท เชธเชเชคเซเชฒเชฟเชค เชเซ. เชนเซเช เชเชพเชกเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชธเชเชคเซเชฒเชฟเชค เชเชฐเชตเซเช เชคเซ เชตเชฟเชถเซ เชเซเช เชธเชฟเชฆเซเชงเชพเชเชค เชเชชเซเชถ เชจเชนเซเช. เชธเซเชคเซเชฐเซเชค เชเซเชก เชธเชเชคเซเชฒเชจ เชเชพเชฐเซเชฏ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ.
เชตเชเชจเชจเซ เชเชเชกเชพเชฃเชฎเชพเช เชฐเซเชชเชพเชเชคเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซเชจเซ เชเซเชก.
/*
* ะะพะทะฒัะฐัะฐะตั ะฟะตัะฒะพะต ัะธัะปะพ ะฒ ััะตะฟะตะฝะธ 2, ะบะพัะพัะพะต ะฑะพะปััะต ะธะปะธ ัะพะฒะฝะพ x
*/
uint64_t bntree::cpl2(uint64_t x) {
x = x - 1;
x = x | (x >> 1);
x = x | (x >> 2);
x = x | (x >> 4);
x = x | (x >> 8);
x = x | (x >> 16);
x = x | (x >> 32);
return x + 1;
}
/*
* ะะฒะพะธัะฝัะน ะปะพะณะฐัะธัะผ ะพั ัะธัะปะฐ
*/
long bntree::ilog2(long d) {
int result;
std::frexp(d, &result);
return result - 1;
}
/*
* ะะตั ะบ ะณะปัะฑะธะฝะต
*/
uint64_t bntree::weight_to_depth(node_t *p) {
if (p == NULL) {
return 0;
}
if (p->weight == 1) {
return 1;
} else if (p->weight == 2) {
return 2;
}
return this->ilog2(this->cpl2(p->weight));
}
เชชเชฐเชฟเชฃเชพเชฎเซ
- เชจเชตเชพ เชคเชคเซเชตเชจเซเช เชจเชฟเชตเซเชถ เชฅเชพเชฏ เชเซ เช (เชฒเซเช เชเชจ)
- เชธเซเชฐเซเชฏเชฒ เชจเชเชฌเชฐ เชฆเซเชตเชพเชฐเชพ เชคเชคเซเชต เชเชพเชขเซ เชจเชพเชเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช (เชฒเซเช เชเชจ)
- เชธเซเชฐเซเชฏเชฒ เชจเชเชฌเชฐ เชฆเซเชตเชพเชฐเชพ เชคเชคเซเชต เชฎเซเชณเชตเชตเชพเชฎเชพเช เชฅเชพเชฏ เชเซ เช (เชฒเซเช เชเชจ)
เชเชกเชช เช (เชฒเซเช เชเชจ) เช เชฎเซ เช เชนเชเซเชเชค เชฎเชพเชเซ เชเซเชเชตเชฃเซ เชเชฐเซเช เชเซเช เชเซ เชคเชฎเชพเชฎ เชกเซเชเชพ เชธเซเชฐเซเช เชธเซเชตเชฐเซเชชเชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชเซ.
เชฎเชจเซ เชเชฌเชฐ เชจเชฅเซ เชเซ เชเชตเซ เชฐเชเชจเชพ เชเซเชฏเชพเช เชเชชเชฏเซเชเซ เชฅเช เชถเชเซ. เชตเซเชเซเชทเซ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ เชคเซ เชธเชฎเชเชตเชพ เชฎเชพเชเซ เชฎเชพเชคเซเชฐ เชเช เชเซเชฏเชกเซ. เชคเชฎเชพเชฐเชพ เชงเซเชฏเชพเชจ เชฌเชฆเชฒ เชเชญเชพเชฐ.
เชธเชเชฆเชฐเซเชญเซ
เชชเซเชฐเซเชเซเชเซเชเชฎเชพเช เชเชพเชฎเชเซเชฐเซเชจเซ เชเชกเชช เชเชเชพเชธเชตเชพ เชฎเชพเชเซ เชเซเชธเซเช เชกเซเชเชพ เชเซ. เชตเซเชเซเชท เชญเชฐเชพเช เชฐเชนเซเชฏเซเช เชเซ 1000000 เชคเชคเซเชตเซ เช เชจเซ เชคเชคเซเชตเซเชจเซเช เชเซเชฐเชฎเชฟเช เชเชพเชขเซ เชจเชพเชเชตเชพ, เชจเชฟเชตเซเชถ เช เชจเซ เชชเซเชจเชเชชเซเชฐเชพเชชเซเชคเชฟ เชเซ 1000000 เชเชเชตเชพเชฐ เชคเซ เช 3000000 เชเชพเชฎเชเซเชฐเซ เชชเชฐเชฟเชฃเชพเชฎ เชเซเชฌ เชธเชพเชฐเซเช ~ 8 เชธเซเชเชจเซเชกเชฎเชพเช เชฌเชนเชพเชฐ เชเชตเซเชฏเซเช.
เชธเซเชฐเซเชธ: www.habr.com