-->
当前位置:首页 > 题库 > 正文内容

程序填空题:顺序栈入栈出栈操作

Luz4年前 (2021-05-10)题库2877
顺序栈入栈出栈操作,输出一个数n,再输入n个字符,将每个字符依次入栈,再依次将字符出栈。

```
#include
using namespace std;

#define MAXSIZE 100
typedef int Status;
typedef char SElemType;

typedef struct {
SElemType *base;
SElemType *top;
int stacksize;
} SqStack;

Status InitStack(SqStack &S) {
S.base = new SElemType[MAXSIZE];
if (!S.base)
exit(-2);
S.top = S.base;
S.stacksize = MAXSIZE;
return 1;
}

Status Push(SqStack &S, SElemType e) {
if (S.top - S.base == S.stacksize)
return 0;
@@[*(S.top++) = e](2);
return 1;
}

Status Pop(SqStack &S, SElemType &e) {
if (S.base == S.top)
return 0;
@@[e = *(--S.top)](2);
return 1;
}

int main() {
SqStack s;
int n, i;
char c;
@@[InitStack(s)](2);
cin >> n;
for(i=0;i cin >> c;
Push(s,c);
}
for(i=0;i Pop(s,c);
cout << c << " ";
}
return 0;
}
```






答案:
第1空:*(S.top++) = e

第2空:e = *(--S.top)

第3空:InitStack(s)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。