2011-04-27 79 views
0

嘿,只是爲即將到來的考試做一些修改,我在看過去的論文。整數的有界堆棧C++

有人問我寫這個類實現:

class Stack 
{ 
    public: 
     Stack(int n=1); 
     int pop(); 
     void push(int); 
     int isEmpty(); 
     int isFull(); 
     ˜Stack(); 
    private: 
     int top; // index of element at top of stack 
     int size; // maximum number of elements storable 
     int * cell; // pointer to elements stored in stack 
}; 

我明白堆棧的理論,我知道的方法必須做的,是混淆我的位在哪裏是整數被傳遞到存儲的堆棧,這是如何完成的?也許我錯過了一些真正簡單的東西,但我很難過?

+4

'int * cell; //指向存儲在堆棧中的元素的指針 - 關於此評論的任何內容都不清楚?它在一個動態分配的數組中。 – Xeo 2011-04-27 15:05:02

+1

它們存儲在單元格中,這是一個指向整數的指針,你可以用它指向一個整數數組。 – atoMerz 2011-04-27 15:06:42

回答

2

我不會將它命名爲或可能以這種方式實現它,但int * cell是您的物品去的地方。我假設他們希望在初始化堆棧時將其初始化爲size的數組。

3

我猜你int * cell爲線索,它是一個指針到一個數組,所以你初始化它是這樣int * cell = new int[size];

現在你可以使用cell作爲索引到動態數組。

0

的整數被存儲在堆,而「底部」元素存儲在

Stack s(5); 
s.cell[0]; 

第二在

s.cell[1]; 

等。