⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grammer.h

📁 用C++做的firstVT和lastVT
💻 H
字号:
#define STACKSIZE 100

struct grammer
{
	char vn[27];
	char vt[129];
	char **generator;
	int genNum;
};

struct stack
{
	char *s;
	char *top;
	int stacksize;
};

int init(grammer * g)
{
	if(!(g->generator=(char**)malloc(50*sizeof(char*)))) return 0;
	g->genNum=0;
	g->vn[0]=0;
	g->vt[0]=0;
	return 1;
}

int initStack(stack *stk)
{
	(stk->s)=(char *)malloc(STACKSIZE*sizeof(char));
	if(   !stk->s   )
	{
		printf("memory alocating error!\n");
		exit(0);
	}
	stk->top=stk->s;
	stk->stacksize=STACKSIZE;
	return 1;
}
int stackEmpty(stack *stk)
{
	if(stk->top==stk->s) return 1;
	else return 0;
}
void push(stack *stk,char ch)
{
	*(stk->top++)=ch;
}
char pop(stack *stk)
{
	char ch;
	if(!stackEmpty(stk))
	{
		ch=*(stk->top-1);
		stk->top--;
		return ch;
	}
	else exit(0);
}

char gettop(stack *s)
{
	if(!stackEmpty(s))
		return *(s->top-1);
	else
	{
		printf("regular expression stack error!\n");
		exit(0);
	}
}
int insert2set(char c,char *set)
{
	for(int i=1;i<=set[0];i++)
	{
		if(c==set[i]) return 0;
	}
	set[0]++;
	set[set[0]]=c;
	return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -