#include <stdio.h>
#define height 4 //木の高さ (今回は4)
#define MAX (1<<height) //木の最大の大きさ
//ビットシフト演算 2^height と同じ
int sz = 0; //木の要素数
int t[MAX+1]; //二分木の配列 +1はダミー
// 演習2
int goP(int i); // 親のノードの添え字を求める関数
int goL(int i); // 左の子のノードの添え字を求める関数
int goR(int i); // 右の子のノードの添え字を求める関数
void printA(); // 配列を出力する関数
int goP(int i){
if(i/2 == 0) return 0;
else return i/2;
}
int goL(int i){
if(2*i >= MAX) return 0;
else return 2*i;
}
int goR(int i){
if(2*i+1 >= MAX) return 0;
else return 2*i+1;
}
void printA(){
int i;
for(i=1;i<=MAX;i++)
}
int main(void) {
int i,n;
// ここではシンプルに演習2だけのためにP.29の配列 t をそのまま読み込んでいる
for(i=0;i<n;i++){
}
// ちゃんと読み込めたかの確認
for(i=0;i<n;i++){
printf("t[%d]=%d\n", i
, t
[i
]); }
// goP, goL, goR が正しく実装できているか
// 自分でコードを追加して確認してください。
int j = goP(5);
printf("ノード %d(値は %d) の親は ノード%d で値は %d\n", 5, t
[5], j
, t
[j
]);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIGhlaWdodCA0IAkJLy/mnKjjga7pq5jjgZUg77yI5LuK5Zue44GvNO+8iQojZGVmaW5lIE1BWCAoMTw8aGVpZ2h0KSAgCS8v5pyo44Gu5pyA5aSn44Gu5aSn44GN44GVCgkJCQkvL+ODk+ODg+ODiOOCt+ODleODiOa8lOeulyAyXmhlaWdodCDjgajlkIzjgZgKaW50IHN6ID0gMDsJCQkvL+acqOOBruimgee0oOaVsAppbnQgdFtNQVgrMV07IAkJCS8v5LqM5YiG5pyo44Gu6YWN5YiXICsx44Gv44OA44Of44O8CgoKLy8g5ryU57+SMgppbnQgZ29QKGludCBpKTsgLy8g6Kaq44Gu44OO44O844OJ44Gu5re744GI5a2X44KS5rGC44KB44KL6Zai5pWwCmludCBnb0woaW50IGkpOyAvLyDlt6bjga7lrZDjga7jg47jg7zjg4njga7mt7vjgYjlrZfjgpLmsYLjgoHjgovplqLmlbAKaW50IGdvUihpbnQgaSk7IC8vIOWPs+OBruWtkOOBruODjuODvOODieOBrua3u+OBiOWtl+OCkuaxguOCgeOCi+mWouaVsAp2b2lkIHByaW50QSgpOyAgLy8g6YWN5YiX44KS5Ye65Yqb44GZ44KL6Zai5pWwCgppbnQgZ29QKGludCBpKXsKICAgIGlmKGkvMiA9PSAwKSByZXR1cm4gMDsKICAgIGVsc2UgcmV0dXJuIGkvMjsKfQoKaW50IGdvTChpbnQgaSl7CiAgICBpZigyKmkgPj0gTUFYKSByZXR1cm4gMDsKICAgIGVsc2UgcmV0dXJuIDIqaTsKfQoKaW50IGdvUihpbnQgaSl7CiAgICBpZigyKmkrMSA+PSBNQVgpIHJldHVybiAwOwogICAgZWxzZSByZXR1cm4gMippKzE7Cn0KCnZvaWQgcHJpbnRBKCl7CiAgICBpbnQgaTsKICAgIGZvcihpPTE7aTw9TUFYO2krKykKICAgICAgICBwcmludGYoIiVkICIsdFtpXSk7CiAgICBwcmludGYoIlxuIik7Cn0KCgoKaW50IG1haW4odm9pZCkgewogICAgaW50IGksbjsKICAgIHNjYW5mKCIlZCIsJm4pOwoKCS8vIOOBk+OBk+OBp+OBr+OCt+ODs+ODl+ODq+OBq+a8lOe/kjLjgaDjgZHjga7jgZ/jgoHjgatQLjI544Gu6YWN5YiXIHQg44KS44Gd44Gu44G+44G+6Kqt44G/6L6844KT44Gn44GE44KLCiAgICBmb3IoaT0wO2k8bjtpKyspewogICAgCXNjYW5mKCIlZCIsJih0W2ldKSk7Cgl9CgkvLyDjgaHjgoPjgpPjgajoqq3jgb/ovrzjgoHjgZ/jgYvjga7norroqo0KCWZvcihpPTA7aTxuO2krKyl7CgkJcHJpbnRmKCJ0WyVkXT0lZFxuIiwgaSwgdFtpXSk7Cgl9CgkKCS8vIGdvUCwgZ29MLCBnb1Ig44GM5q2j44GX44GP5a6f6KOF44Gn44GN44Gm44GE44KL44GLCgkvLyDoh6rliIbjgafjgrPjg7zjg4njgpLov73liqDjgZfjgabnorroqo3jgZfjgabjgY/jgaDjgZXjgYTjgIIKCWludCBqID0gZ29QKDUpOwoKCXByaW50Zigi44OO44O844OJICVk77yI5YCk44GvICVk77yJIOOBruimquOBryDjg47jg7zjg4klZCDjgaflgKTjga8gJWRcbiIsIDUsIHRbNV0sIGosIHRbal0pOwoKCiAgICByZXR1cm4gMDsJCgp9Cg==