C++关于栈指针的问题

题目:
定义一个字符栈类Stack(包括类的实现).数据成员包括一个存放数组的stck[] 和栈指针 tos. 栈数组大小由常量SIZE决定.基本操作有Push和Pop.

#define SIZE 10
#include<iostream>
using namespace std;

class Stack {
    char stck[SIZE];
    int tos;
public :
    Stack() { tos = 0; }
    bool Push(char x);
    char Pop();
};

bool Stack::Push(char x) {
    if (tos == SIZE) {
        return false;
    }
    else {
        stck[tos++] = x;
        return true;
    }
}

char Stack::Pop() {
    if (tos == 0) {
        return 'f';
    }
    else {
        return stck[--tos];
    }
}

int main() {
    Stack s;
    s.Push('0');
    s.Push('1');
    s.Push('2');
    s.Push('3');
    s.Push('4');
    s.Push('5');
    s.Push('6');
    s.Push('7');
    s.Push('8');
    s.Push('9');
    cout << s.Pop()<< endl;
    cout << s.Pop()<< endl;
    cout << s.Pop()<< endl;
    system("pause");
    return 0;
}

我做题目看人家的答案,发现这个答案是不是没有用到栈指针, 不是应该是 s->tos 这样使用栈指针么?

#笔试题目#
全部评论
tos不是栈指针吗?你问什么?一定要是pointer类型你才会觉得是指针?
点赞 回复 分享
发布于 2018-11-19 20:05
stack s;这儿就只是初始化了一个栈而已,没有看到用了栈指针...
点赞 回复 分享
发布于 2018-11-19 19:55
pop只是弹出操作,返回值是void,先top获取在
点赞 回复 分享
发布于 2018-11-18 23:56
你用栈需要用到栈指针吗?tos是private的...如果要用的也应该包一个s.top()之类的
点赞 回复 分享
发布于 2018-11-18 17:58

相关推荐

点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务