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

📄 stack.cpp

📁 数据结构课程设计,表达式,用C语言实现,难度系数较高
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#include "../header/bitree.h"
#include "../header/queue.h"
#include "../header/stack.h"
#include "../header/expr.h"
Status InitStack( SqStack &S )
{
	S.base =  ( SElemType * ) malloc ( 100 * sizeof( SElemType )  );
	if( !S.base )
		return FALSE;
	S.top = S.base;
	S.stacksize = STACK_INIT_SIZE;
	return OK;
}

Status StackEmpty( SqStack S )
{
	return S.base == S.top;
}
/*
Status Top( SqStack S, SElemType &e )
{
	if( S.top == S.base )
		return ERROR;
	e = * ( S.top - 1 );
	return OK;
}*/

Status Push( SqStack &S, SElemType e )
{
	if( S.top - S.base >= S.stacksize )
	{
		S.base = ( SElemType * )realloc( S.base, 
			( S.stacksize + 10 ) * sizeof( SElemType ) );
		if( !S.base )
			return FALSE;
		S.top = S.base + S.stacksize;
		S.stacksize += STACKINCREMENT;
	}
	*S.top++ = e;
	return OK;
}

Status Pop( SqStack &S, SElemType &e )
{
	if( S.top == S.base )
		return ERROR;
	e = * --S.top;
	return OK;
}
SElemType Top( SqStack S )
{SElemType e;
	if( S.top == S.base )
		return ERROR;
	e = * ( S.top - 1 );
	return e;
}

⌨️ 快捷键说明

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