程序填空题:链栈入栈出栈操作
链栈入栈出栈操作。
```c++
#include
using namespace std;
typedef char SElemType;
typedef struct StackNode {
SElemType data;
struct StackNode *next;
} StackNode, *LinkStack;
int Push(LinkStack &S, SElemType e) {
LinkStack p;
p = new StackNode;
p->data = e;
@@[p->next = S](2);
@@[S = p](2);
return 1;
}
int Pop(LinkStack &S, SElemType &e) {
LinkStack p;
if (S == NULL)
return 0;
e = S->data;
p = S;
@@[S = S->next](2);
delete p;
return 1;
}
int main() {
LinkStack s=NULL;
int n, i;
char c;
cin >> n;
for(i=0;i cin >> c;
Push(s,c);
}
for(i=0;i Pop(s,c);
cout << c << " ";
}
return 0;
}
```
答案:
第1空:p->next = S
第2空:S = p
第3空:S = S->next
```c++
#include
using namespace std;
typedef char SElemType;
typedef struct StackNode {
SElemType data;
struct StackNode *next;
} StackNode, *LinkStack;
int Push(LinkStack &S, SElemType e) {
LinkStack p;
p = new StackNode;
p->data = e;
@@[p->next = S](2);
@@[S = p](2);
return 1;
}
int Pop(LinkStack &S, SElemType &e) {
LinkStack p;
if (S == NULL)
return 0;
e = S->data;
p = S;
@@[S = S->next](2);
delete p;
return 1;
}
int main() {
LinkStack s=NULL;
int n, i;
char c;
cin >> n;
for(i=0;i
Push(s,c);
}
for(i=0;i
cout << c << " ";
}
return 0;
}
```
答案:
第1空:p->next = S
第2空:S = p
第3空:S = S->next