在编译和运行程序时寻找任何帮助,我得到“Assign5.exe无法运行”,然后程序停止。
push方法接受一个整数参数,即插入堆栈的值。 确定堆栈容量是否有空间,如果没有任何空间,则调用单独的保留方法将容量增加一倍或两倍。
reserve方法增加堆栈容量,然后复制堆栈数组中的所有值并存储它们以便稍后打印。
推入的初始值是for循环: for(int i = 10; i <80; i + = 10) s1.push(ⅰ)
到目前为止,这是我的代码:
void Stack::push(int stackvalue)
{
if (stkSize == stkCapacity)
{
if (stkCapacity == 0)
reserve(1);
else
reserve(stkCapacity * 2);
}
stkArray[stkSize] = stackvalue;
++stkSize;
}
void Stack::reserve(size_t n)
{
if (n < stkSize or n == stkCapacity)
return;
else
{
stkCapacity = n;
int* tempArray;
if(stkCapacity == 0)
tempArray = NULL;
else
for (size_t i = 0; i < stkCapacity; i++)
{
tempArray[i] = stkArray[i];
}
delete[] stkArray;
stkArray = tempArray;
}
}