stack.c

来自「简单编译器」· C语言 代码 · 共 43 行

C
43
字号


int initstack()
{
	s.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));
	if(!s.base) exit(OVERFLOW);
	s.top = s.base;
	s.stacksize=STACK_INIT_SIZE;
	return OK;
}

int gettop()
{
	if(s.top==s.base) return ERROR;
    topvalue=*(s.top-1);
	return OK;
}

int push(int tempvalue)
{
	if((s.top-s.base)>=s.stacksize)
	{
		s.base=(int *)realloc(s.base,(s.stacksize+STACKINCREMENT)*sizeof(int));
		if(!s.base) exit(OVERFLOW);

		s.top=s.base+s.stacksize;
		s.stacksize+=STACKINCREMENT;
	}

	*s.top++ = tempvalue;
	return OK;
}

int pop()
{
    if(s.top==s.base) return ERROR;
	topvalue=*(--s.top);
	return OK;
}



⌨️ 快捷键说明

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