>>634
>root->left = push(root->left, data);
>root->leftへの代入って、pushとpopでは必要ないのではないのでしょうか。
新しいノードが malloc() されたときには,この記述は効いてくる
そうでないとき,すなわち既存のノードを繰っているときには不要だ,でもこの記述方法ではこれら両者の切り分けはできない

だ か ら 参 照 ま た は 二 重 ポ イ ン タ が 必 要 に な る