加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
chap03_03.cpp 811 Bytes
一键复制 编辑 原始数据 按行查看 历史
Admin 提交于 2022-03-25 07:08 . cpp_structures
#include <iostream>
using namespace std;
const int N = 100;
struct CStack
{
char s[N]; //栈的内容保存在s中
int tp; //栈顶指示器,栈空为-1
};
void init(CStack* stk)
{
stk->tp = -1;
}
bool isEmpty(CStack stk)
{
return (stk.tp==-1);
}
bool isFull(CStack stk)
{
return (stk.tp==(N-1));
}
void push(CStack* stk, char c)
{
stk->tp++;
stk->s[stk->tp] = c;
}
char pop(CStack* stk)
{
int oldtp = stk->tp;
stk->tp--;
return (stk->s[oldtp]);
}
char top(CStack stk)
{
return (stk.s[stk.tp]);
}
int main()
{
char str[] = {"0123456789"};
struct CStack s;
cout << str << endl;
init(&s);
int i = 0;
while(str[i] && !isFull(s))
push(&s, str[i++]);
while(!isEmpty(s))
cout << pop(&s);
cout << endl;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化