/* 配列による2分木のプログラム例 */ class BinaryTree { int[] node; static int left (int i) { return 2*i+1; } // 左の子のインデックス static int right (int i) { return 2*i+2; } // 右の子のインデックス static int parent (int i) { return (i-1)/2; } // 親のインデックス public BinaryTree (int size) { node = new int[size]; } public static void main (String[] args) { BinaryTree bt = new BinaryTree(7); bt.node[0]=50; // 根に 50をセット bt.node[left(0)]=30; // 根の左の子に30をセット bt.node[right(0)]=70; // 根の右の子に70をセット bt.node[left(left(0))]=10; // 根の左の子の左の子に10をセット bt.node[right(left(0))]=40; // 根の左の子の右の子に40をセット bt.node[left(right(0))]=60; // 根の右の子の左の子に60をセット bt.node[right(right(0))]=80; // 根の右の子の右の子に80をセット for (int i=0; i<7; i++) { System.out.println(bt.node[i]); } } }