📄 stack.c
字号:
//堆栈的有关算法
#define MAX 30 // 最多30个元素
#define NULL -1 //失败标志
typedef struct
{
int d[MAX] ; //用数组作为堆栈的储存空间
int top ; //指示栈顶位置的变量
}STACK ; //堆栈类型定义
STACK sq ; //定义堆栈
int PUSH (int x) //堆栈的入栈算法
{
if ( sq.top == MAX-1 ) //满栈,入栈失败
return NULL;
else { sq.top++; //调整栈顶变量
sq.d[sq.top] = x ; //数据入栈
return 1 ; } //入栈成功
}
int POP ( )//堆栈的出栈算法
{
if (sq.top == NULL ) return NULL; //空栈,出栈失败
else return sq.d[sq.top--] ;//返回栈首元素,调整栈首变量
}
void main ( )
{
int x;
sq.top = NULL ;//初始化空栈
PUSH (45); //调用入栈算法,45入栈
PUSH (67); //调用入栈算法,67入栈
PUSH (29); //调用入栈算法,29入栈
x = POP (); //调用出栈算法,x=29
PUSH (44); //调用入栈算法,44入栈
x = POP (); //调用出栈算法,x=44
PUSH (37); //调用入栈算法,37入栈
PUSH (89); //调用入栈算法,89入栈
x = POP (); //调用出栈算法,x=89
x = POP (); //调用出栈算法,x=37
x = POP (); //调用出栈算法,x=67
x = POP (); //调用出栈算法,x=45
while (1) ; //在这一行设置断点,中止程序运行,以便观察程序运行的结果
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -