2013-08-03 74 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