📄 ch3_1.c
字号:
#include <stdio.h>
#define STACK_SIZE 10 /* 栈的大小 */
int push(int);
int pop(void);
int stack[STACK_SIZE]; /* 声明栈为数组 */
int top=-1; /* 指向栈的顶端 */
void main()
{
int temp; /* 保存输入的数据 */
int select; /* 选项设置 */
int loop=1; /* 循环控制 */
while(loop)
{
printf("1.加入数据 2.删除数据 3.结束==> ");
scanf("%d", &select); /* 读入选项 */
switch(select)
{
case 1: /* 将数据加入栈中 */
printf("请输入加入栈的数据==> ");
scanf("%d", &temp);
if(push(temp) == -1)
printf("队列已满,无法加入此笔数据!\n");
break;
case 2: /* 将数据从栈中取出 */
if((temp=pop()) == -1)
printf("栈是空的.\n");
else
printf("从栈取出数据==> %d\n", temp);
break;
case 3: /* 结束 */
loop=0;
break;
default: /* 选项错误 */
printf("输入错误.\n");
break;
}
printf("\n");
}
/* 取出栈中剩余的数据 */
if(top == -1)
printf("栈中无剩余的数据.\n");
else
{
printf("栈中剩余的数据==> ");
while((temp=pop()) != -1)
printf("%d ", temp);
printf("\n");
}
}
int push(int item) /* 加入数据 */
{
if(top >= STACK_SIZE-1) /* 检查栈是否已满了 */
return -1;
top++; /* 将top指向栈的顶端 */
stack[top]=item; /* 将数据存入栈 */
}
int pop() /* 取出数据 */
{
if(top < 0) /* 检查栈是否已空的 */
return -1;
return stack[top--]; /* 将数据111
22从栈取出,并将top的值减1 */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -