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

相关推荐

07-07 14:30
复旦大学 Java
遇到这种人我也不知道说啥了
正义执行官:人家能回你就不错了,自己不主动去问,等着天上掉馅饼,想啥呢哥们
点赞 评论 收藏
分享
Rena1ssanc...:对的,要是面评没太烂,勤更新简历等捞就行了,腾讯可以无限复活
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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