幅優先順に配列に読む! そのあとは以下

#include <iostream>
 
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;
}
  • game-engineer/classes/2021/game-algorithm/9-13-2/9-14-5.txt
  • 最終更新: 4年前
  • by root