#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 5
typedef struct {
int elem[MAXSIZE];
int top;
}SeqStack;
void Show_SeqStack(SeqStack *S,int len) {
int i;
printf("此时栈中的元素为:\n");
for(i = 0;i < len;i++) {
printf("%d ",S->elem[i]);
}
}
int Push_SeqStack(SeqStack *S,int x) {
if(S->top == MAXSIZE - 1) {
printf("栈满,不能入栈!\n");
return 0;
}else {
S->top++;
S->elem[S->top] = x;
printf("插入成功\n");
return 1;
}
}
int Pop_SeqStack(SeqStack *S) {
if(S->top == -1) {
printf("栈空,出栈失败");
return 0;
}else {
printf("出栈元素为:%d",S->elem[S->top]);
S->top--;
return 1;
}
}
int main() {
SeqStack *S;
S = (SeqStack*)malloc(sizeof(SeqStack));
S->top = -1;
int x,len,m; //要插入的数据
char ch;
while(1) {
printf("请输入要插入的数据(输入q退出):\n");
scanf("%d",&x);
ch = getchar();
if(ch == 'q') {
break;
}
Push_SeqStack(S,x);
}
Show_SeqStack(S,S->top + 1);
while(1) { //出栈操作
printf("\n是否进行出栈操作:1是/0否 ");
scanf("%d",&m);
if(m == 1) {
Pop_SeqStack(S);
}else {
break;
}
}
Show_SeqStack(S,S->top + 1);
return 0;
}
C语言入栈出栈
最新推荐文章于 2024-05-11 22:43:27 发布