📄 struct.h
字号:
#define stack_init_size 100
/*堆栈 初始大小*/
#define stackinc 1
/*堆栈 分配增量*/
typedef struct
{
char*base,*top ;
int stacksize ;
/*堆栈 当前大小*/
}
stack ;
#define LEN sizeof(struct node )
struct head*ff ;
struct node
{
char type ;
/* 1 非终 2 终结符 3 空*/
char id ;
struct node*next ;
/* 顺向指针*/
struct node*pn ;
/* 规则式指针*/
struct node*pm ;
/* 文法指针 兼 逆向循环指针*/
}
;
struct head
{
char id ;
char kong ;
struct ffnode*first ;
struct ffnode*follow ;
struct node*kg ;
}
;
struct ffnode
{
char id ;
struct ffnode*nt ;
struct node*fp ;
}
;
/* 出错暂停 */
void exit_pause()
{ /* printf("\nPress any key to continue");
getch();
exit(1);*/
}
int initstack(stack*s)
{
s->base=(char*)malloc(stack_init_size*sizeof(char));
if(!s->base){printf("分配失败"); exit_pause();}
s->top=s->base ;
s->stacksize=stack_init_size ;
return OK ;
}
int gettop(stack*s,char*e)
{
if(s->base==s->top)return ERROR ;
*e=*(s->top-1);
return OK ;
}
int push(stack*s,char ch)
{
if(s->top-s->base>=s->stacksize) return ERROR;
*(s->top++)=ch ;
return OK ;
}
int pop(stack*s,char*e)
{
if(s->top==s->base)return ERROR ;
*e=*(--s->top);
return OK ;
}
void destroy(stack*s)
{
free(s->base);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -