使用堆栈推送和保留功能

时间:2017-10-23 21:59:02

标签: stack push

在编译和运行程序时寻找任何帮助,我得到“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;
  } 
     }

0 个答案:

没有答案