***すれ立てるまでもない質問はここで 第39刷***

このエントリーをはてなブックマークに追加
49デフォルトの名無しさん
c で {a, b, c, d} みたいな入力に対して、
(((a b) c) d) とか ((a b) (c d))
みたいな2分木を全部書き出すプログラムを書きたいのですが、
どうするのがうまいのかよく分かりません。
list[]={a, b, c, d} として配列に入れたあと、ここから 2個とって、
例えば a と b を取ると、 (a b), c, d の4つに対して
再帰的に木を構築するのが自然かと思います。
ただ、配列に入れてしまっていると、新しい配列を作らないと
いけなくなりますよね。
どうも毎回作り直すのは効率がよくない気がするのですよね。
よい方法があればおしえていただけないでしょうか。