#include <stdio.h>
struct Noeud {
int nbr;
Noeud *gauche, *droite;
};
static void insertion(Noeud *&top, Noeud *newNoeud) {
if (top == NULL) {
top = newNoeud;
top->droite = NULL;
top->gauche = NULL;
} else if (newNoeud->nbr < top->nbr)
insertion(top->gauche, newNoeud);
else
insertion(top->droite, newNoeud);
}
int main() {
Noeud *top = NULL;
Noeud *n = new Noeud;
n->nbr = 4;
insertion(top, n);
n = new Noeud;
n->nbr = 10;
insertion(top, n);
printf("%d\n", top->nbr);
printf("%d\n", top->droite->nbr);
printf("%p\n", top->gauche);
printf("%p\n", top->droite->gauche);
printf("%p\n", top->droite->droite);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpzdHJ1Y3QgTm9ldWQgewogICAgaW50IG5icjsKCU5vZXVkICpnYXVjaGUsICpkcm9pdGU7Cn07CgpzdGF0aWMgdm9pZCBpbnNlcnRpb24oTm9ldWQgKiZ0b3AsIE5vZXVkICpuZXdOb2V1ZCkgewoJaWYgKHRvcCA9PSBOVUxMKSB7CgkJdG9wID0gbmV3Tm9ldWQ7CgkJdG9wLT5kcm9pdGUgPSBOVUxMOwoJCXRvcC0+Z2F1Y2hlID0gTlVMTDsKCX0gZWxzZSBpZiAobmV3Tm9ldWQtPm5iciA8IHRvcC0+bmJyKQoJCWluc2VydGlvbih0b3AtPmdhdWNoZSwgbmV3Tm9ldWQpOwoJZWxzZQoJCWluc2VydGlvbih0b3AtPmRyb2l0ZSwgbmV3Tm9ldWQpOwp9CgppbnQgbWFpbigpIHsKCU5vZXVkICp0b3AgPSBOVUxMOwoKCU5vZXVkICpuID0gbmV3IE5vZXVkOwoJbi0+bmJyID0gNDsKCWluc2VydGlvbih0b3AsIG4pOwoJbiA9IG5ldyBOb2V1ZDsKCW4tPm5iciA9IDEwOwoJaW5zZXJ0aW9uKHRvcCwgbik7CgoJcHJpbnRmKCIlZFxuIiwgdG9wLT5uYnIpOwoJcHJpbnRmKCIlZFxuIiwgdG9wLT5kcm9pdGUtPm5icik7CglwcmludGYoIiVwXG4iLCB0b3AtPmdhdWNoZSk7CglwcmludGYoIiVwXG4iLCB0b3AtPmRyb2l0ZS0+Z2F1Y2hlKTsKCXByaW50ZigiJXBcbiIsIHRvcC0+ZHJvaXRlLT5kcm9pdGUpOwoJcmV0dXJuIDA7Cn0=