📄 symbol_instr_stack.h
字号:
#include<stdio.h>
#include<stdlib.h>
#define MAX 20
typedef struct{
char stack[MAX];
int top;
}symbol_instr;
//初始化栈
void init_stack(symbol_instr *p)
{
if( !p)
printf("\n初始化符号栈出错!\n");
p->top = -1;
}
//压栈
void push(symbol_instr *p,char x)
{
if(p->top < MAX-1)
{
p->top++;
p->stack[p->top] = x;
}
else printf("\n符号栈溢出!\n");
}
//弹栈
char pop(symbol_instr *p)
{
char x;
if(p->top != -1)
{
x = p->stack[p->top];
p->top--;
return x;
}
else
{
printf("\n符号栈1空!\n");
return 0;
}
}
//取栈顶元素
char get_top(symbol_instr *p)
{
char x;
if(p->top != -1)
{
x = p->stack[p->top];
return x;
}
else
{
printf("\n符号栈2空!\n");
return 0;
}
}
//自栈底到栈顶遍历栈元素
void out_stack1(symbol_instr *p)
{
int i;
if(p->top <0)
printf("\n符号栈3空!\n");
for(i=0; i<=p->top;i++)
{
printf("%c",p->stack[i]);
}
}
//自栈顶到栈底遍历栈元素
void out_stack2(symbol_instr *p)
{
int i;
if(p->top <0)
printf("\n符号栈4空!\n");
for( i=p->top;i>=0;i--)
{
printf("%c",p->stack[i]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -