864 :
デフォルトの名無しさん:
[1] 授業単元: プログラミング演習 (木構造と数式処理)
[2] 問題文(含コード&リンク):
算術式の値を変えずに括弧をくくり直す簡単な式変形を考える.例えば,式
(1+(2+3))
(a*(b*c))
((i*x)+((j*y)+(k*z)))
の括弧を左にくくり直すと,それぞれ,次の式になる.
((1+2)+3)
((a*b)*c)
(((i*x)+(j*y))+(k*z))
括弧を左にくくり直せる (A+(B+C)) や (A*(B*C)) の形の算術式を((A+B)+C) や ((A*B)*C) の形にする式変形は,式に対応する木を
「左に転回」する変形と捉えられる
この操作を実行する関数 rotate_left_exp()を完成させてください。
括弧をくくり直すと値の変わる (8+(8*8)) のような式や,括弧をくくり直せる部分が内側にある (a+(b*(c*d))) のような式は,
変形しないこと.
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2010年01月18日12:00まで
よろしくお願いします。