2013-08-03 72 views
-2

任何人都可以帮助我从以下代码中的评论HERE中绘制运行时栈?我试过这个,但被告知这是不正确的,我的教授拒绝解释这个......如果任何人都可以给我一个例子,很容易将它用作另一段代码的比较。 具体而言,我相信我没有正确格式化堆栈。Java,绘制运行时间堆栈

我尝试:

array a initialized with 3 values 
integer x = 4; 
call method b, passes in array a. 
integer i = 14; 
array x[0] = 4; 
call method e, passes in i - 2 = 12; 
calls method f 12 - 4 = 8; 
int j = 2; 
8 * 2 = 16; 
println "16"; 
println "4 + 0" 

public class RuntimeStack 
{ 
    public static void main (String [] args) 
    { 
    int[] a = new int[3]; 
    int x = 4; 
    b(a); 
    System.out.println(a[0] + “ “ + a[1] + “ “ + x); 
} 
public static void e(int a) 
{ 
f(a-4); 
// HERE! } 
    public static void b(int [] x) 
    { 
    int i = 14; 
    x[0] = 4; 
    e(i-2); 
} 
    public static void f(int i) 
    { 
int j = 2; 
    System.out.println("i * j = " + (i * j)); 
    } 
} // end class RuntimeStack 

非常感谢您!从你离开的地方

+0

请显示您的努力。 – rocketboy

+0

是更新。我特别困惑于“正确格式化”运行时堆栈。 – andrsnn

+0

常见的人,我知道这是一个简单的问题(因此downvotes),但如果任何人都可以帮助我在正确的方向,我会更进一步了解java和编程更好.... – andrsnn

回答

1

我的猜测是,他希望与他们将被放置在栈中的顺序堆栈内的值绘制的图(和可能已经删除)。如果你有一个方法调用第二个方法传递参数,每次他们可能需要parms列表和返回信息的调用等,这将是我最好的猜测他们想要什么。

0

继续:

call method e, passes in 12 
call method f, passes in 8 
integer j = 2 
print "i * j = " + 16 
print 4 + " " + 0 + " " + 4 
+0

是的,我更新了它。我的回答并不在家里,所以我只是再次介绍一遍。我问了这个问题,因为我的教授正在假设一种格式,我假设有一个正确的格式到堆栈 – andrsnn