在返回提供的字符之前从Stack返回等号返回弹出

时间:2015-02-21 20:22:46

标签: c++ char stack

我正在使用C ++中的字符数组编写一个堆栈示例。

按如下方式访问堆栈时:

while (stack->notEmpty()){
    stack->display();
    stack->pop();
}

它表明只有属于堆栈的字符存在:

+
2
3
---
+
2
---
+
---
(empty)

但是,当试图以这种方式访问​​函数返回的字符时:

while (stack->notEmpty()){
    char c = stack->pop();
    cout << c << "\n";
}

它返回字符:

═
3
2
+

这让我觉得我的功能有问题,但是当我没有存储返回的角色时它会起作用。我已经在当前的代码中做了解决方法,但我想知道是否有人看到任何可能导致此问题的内容。

我使用以下方法创建堆栈:

Stack *stack = new Stack(1024);

通过以下方式访问:

char pop(){
    if (!(top == 0)){
        char return_char = stack[top];
        --top;
        return return_char;
    }
    else{
        char return_char = stack[top];
        top = 0;
        return return_char;
    }
}

感谢任何想法和帮助!

粘贴完整标题here

0 个答案:

没有答案