顺序栈Sequential-stack

0、节点结构体定义

typedef struct SqStack{
	int *base;
	int *top;
} SqStack;

1、初始化

bool InitStack(SqStack &S)
{
	S.base = new int[Maxsize];    //eg. #define Maxsize 100
	
	if(!S.base){
		return false;
	}
	S.top = S.base;
	
	return true;
}

2、入栈

bool Push(SqStack &S, int e)
{
	if(S.top-S.base== Maxsize){
		return false;
	}
	*(S.top++) = e;
	
	return true;
}

3、出栈

bool Pop(SqStack &S, int &e)
{
	if(S.top== S.base){
		return false;
	}
	e = *(--S.top);
	
	return true;
}

4、取栈顶元素

int GetTop(SqStack S)
{
	if(S.top!= S.base){
		return *S.top;
	}else{
		return -1;
	}
}

5、释放内存

void StackRelese(SqStack &S)
{
	delete[] S.base;
	delete &S;
}

你可能感兴趣的:(数据结构,数据结构,c++)