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

📄 stack.h

📁 用类实现的栈的结构。在VC++6里编译通过。希望对初学者有点帮助。高手就不用看了。
💻 H
字号:
#include <malloc.h>

#define STACK_INIT_SIZE 100				//设置栈的初始容量
#define	STACKINCREMENT 10				//设置如果栈满后应该再给多分配空间大小
typedef int selemtype;					//设置栈中元素类型

typedef struct							//栈结构
{	selemtype *base;
	selemtype *top;
	int stacksize;
}sqstack;

class hu								//堆栈类主体
{
private:
	sqstack s;
public:
	hu()								//构造函数
	{
		cout<<"这里是构造函数"<<endl;
	}
	int initstack()
	{	s.base=(selemtype *)malloc(STACK_INIT_SIZE*sizeof(selemtype));
		if(!s.base)
		{	cout<<"分配空间失败"<<endl;
			return 0;
		}
		s.top=s.base;
		s.stacksize=STACK_INIT_SIZE;
		return 1;
	}
	int push(selemtype e)				//入栈函数
	{	if(s.top-s.base>s.stacksize)
		{	s.base=(selemtype *)realloc(s.base,(s.stacksize+STACKINCREMENT*sizeof(selemtype)));
			if(!s.base)
			{	cout<<"分配空间失败"<<endl;
				return 0;
			}
			s.top=s.base+s.stacksize;
			s.stacksize+=STACKINCREMENT;
		}
		*s.top=e;
		s.top++;
		return 1;
	}
	int pop(selemtype &e)				//出栈函数
	{	if(s.top==s.base)
		{	cout<<"这是个空栈"<<endl;
			return 0;
		}
		s.top--;
		e=*s.top;
		return 1;
	}
	int gettop()						//返回栈顶元素函数
	{	selemtype e;
		if(s.top==s.base)
		{	cout<<"这是个空栈"<<endl;
			return 0;
		}
		e=*(s.top-1);
		return e;
	}
	int stacklength()					//返回栈大小函数
	{	selemtype *x;
		int i=0;	
		for(x=s.base;x<s.top;x++)
			i++;
		return i;
	}	
	int stackempty()					//返回栈是否为空的函数
	{	if(s.base==s.top)
			return 1;
		else
			return 0;
	}
	~hu()								//此类的析构函数
	{
		cout<<"这里是析构函数"<<endl;
	}
};

⌨️ 快捷键说明

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