2015-04-08 62 views
-4

對於一個任務,我將使代碼實現完全動態。我們的教授爲我們提供了一個.c文件,其中包含幾個實現,如彈出和推送。我們預定義的堆棧容量爲128.我們通過檢查堆棧上的推送操作是否超出預定義的堆棧容量來使其成爲「動態」。使堆棧「動態」(C)

我有點困惑如何做到這一點。我不能只是在某處添加if語句來檢查容量是否大於堆棧,如果是,只需簡單地分配兩倍的容量並創建一個新的堆棧?

任何想法表示讚賞。

+3

是的,你可以在某處添加一個'if'語句,但'push'函數是最好的地方。這是最好的,因爲如果你處於目前的極限,它就是你知道需要更多容量的地方。 –

+4

請仔細閱讀:[給有功課問題的學生打開信函](http://meta.programmers.stackexchange.com/questions/6166/open-letter-to-students-with-homework-problems) –

+1

@JonathanLeffler:「這是一個你知道需要更多容量的地方**'如果'**你處於當前限制「你應該將它作爲回答發佈:'D – dhein

回答

2

將評論轉移到答案中。

是的,你可以的某個位置添加if聲明,但push()功能是做到這一點的最好的地方。這是最好的,因爲如果你處於目前的極限,它就是你知道需要更多容量的地方。除非你有一個「增加容量」的功能,否則只有push()函數需要增加堆棧,所以這是測試是否需要增加更多內存到堆棧的唯一相關地方。

請注意,您目前在堆棧大小上有固定的上限。你需要把它變成一個變量。請記住仔細考慮初始化條件。