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

📄 stack.cpp

📁 设计模式:工厂模式、单例模式的基本实现
💻 CPP
字号:
/************************************
* Copyright (c) 2008,LDCI
*
* 文件名称: Stack.cpp
* 摘要:
*		使用 C 语言实现对顺序存储结构的堆栈
* 时间:
*		2008-5-5
* 作者:
*		左建华
************************************/
#include <stdlib.h>
#include <stdio.h>

#define STACKSIZE 100
typedef char DataType;
typedef struct
{
	DataType data[STACKSIZE];
	int nTop;

}SeqStack;

void Error(char* _pchMessage);

void InitStack(SeqStack *_pStack)
{
	//将顺序栈置空
	for(int i=0; i<STACKSIZE; i++)
		_pStack->data[i] = 0;
	_pStack->nTop = -1;
}

int StackEmpty(SeqStack *_pStack)
{
	return _pStack->nTop == -1;
}

int StackFull(SeqStack *_pStack)
{
	return _pStack->nTop == STACKSIZE-1;
}

void Push(SeqStack *_pStack, DataType _x)
{
	if( StackFull(_pStack) )
	{
		Error("Stack overflow.");
		return;
	}
	
	_pStack->data[++(_pStack->nTop)] = _x;
}

DataType Pop(SeqStack *_pStack)
{
	if( StackEmpty(_pStack) )
	{
		Error("Stack underflow.");
		return -1;
	}
	
	return _pStack->data[(_pStack->nTop)--];
}

DataType StackTop(SeqStack *_pStack)
{
	if( StackEmpty(_pStack) )
	{
		Error("Stack underflow.");
		return -1;
	}
	
	return _pStack->data[(_pStack->nTop)];
}

void Error(char* _pchMessage)
{
	fprintf(stderr, "Error: %s\n", _pchMessage);
}


int main(int argc, char** argv)
{
	
	return 0;
}

⌨️ 快捷键说明

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