==== 木構造と配列 ==== 幅優先順に配列に読む! そのあとは以下 ==== 木構造を配列で表現してアクセスしてみる ==== #include using std::endl; using std::cout; using std::cin; int getChild(int _num, int _lr); //親を指定して、その親の子のindexを調べて返す関数 //0で左の子 1で右の子のindexを返す int getChild(int _num, int _lr) { int tmp; if (_lr == 0) {//左の子 tmp = _num * 2 + 1; } else//右の子 { tmp = _num * 2 + 2; } if (tmp < 100)return tmp; else return -1; //-1はエラー } //これを使って、"根"の右の子と左の子の値を表示してみて! int main() { int btree[100]; for (int i = 0; i < 100; i++) { btree[i] = -99; //データが入っていない節は //-99がセットされている } //data.txtをbtreeに読み込む //-1は含まないよ int tmp; int i = 0; bool flag = false; while (!flag) { cin >> tmp; if (tmp == -1) { flag = true; } else { btree[i] = tmp; cout << tmp << endl; i++; } } cout << "根の左の子: " << btree[getChild(0, 0)] << endl; cout << "根の右の子: " << btree[getChild(0, 1)] << endl; }