ᠭᠡᠭᠡᠨᠨᠠᠷᠠ 2021-09-19 16:31 采纳率: 0%
浏览 18

自己怎么输入一组数据 ,然后再出栈?这里的代码从1到9输出了

#include
#define MaxSize 50
typedef int ElemType;

typedef struct {
ElemType data[MaxSize]; //栈中存放元素
int top; //栈顶指针,初始赋为-1
}SqStack; //

/栈初始化/
void InitStack(SqStack& S) {
S.top = -1; //初始化栈顶指针-1
}

/判栈空/
bool StackEmpty(SqStack S) {
return S.top == -1;
}

/元素入栈/
bool Push(SqStack& S, ElemType x) {
if (S.top == MaxSize - 1) { //栈满,报错
return false;
}
S.data[++S.top] = x; //指针先加1,再赋值
return true;
}

/弹栈/
bool Pop(SqStack& S, ElemType& e) {
if (StackEmpty(S)) { //栈空,报错
return false;
}
e = S.data[S.top--]; //先出栈,指针再减一
return true;
}

/读取栈顶元素/
bool GetTop(SqStack S, ElemType& e) {
if (S.top == -1) { //栈空,报错
return false;
}
e = S.data[S.top]; //获取栈顶元素
return true;
}

/清空栈/
bool ClearStack(SqStack& S) {
S.top = -1;
return true;
}

int main() {
SqStack s;
ElemType e;
InitStack(s);

for (int i = 1; i < 10; i++) 
    Push(s, i);

while (!StackEmpty(s)) {
    Pop(s, e);
    printf("%d ", e);
}
return 0;

}

  • 写回答

1条回答 默认 最新

  • Admini$trat0r .net领域新星创作者 2021-09-19 16:43
    关注

    这不是实现了么

    评论

报告相同问题?

问题事件

  • 创建了问题 9月19日

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作