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

📄 stack.h

📁 大三计算机的数据结构的 c++ 所用的 头文件
💻 H
字号:
#include "iostream.h"
#include "stdio.h"
#include "malloc.h"

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

typedef char Status;



#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10

typedef char SElemType;

typedef struct { 
	SElemType *base;  // 存储空间基址   
	SElemType *top; // 栈顶指针 
	int stacksize; // 允许的最大存储空间以元素为单位
} SqStack;


Status InitStack (SqStack &S)
{    
   S.base = new SElemType[STACK_INIT_SIZE];
   if (!S.base) return OVERFLOW; //存储分配失败
   S.top = S.base;
   S.stacksize = STACK_INIT_SIZE;
   return OK;
}

Status ClearStack(SqStack &S)
{
	S.top=S.base;
	return OK;
}

Status StackEmpty(SqStack S)
{
	if ((S.top-S.base)==0) return TRUE;
	  else return FALSE;
}

int StackLength(SqStack S)
{
	return S.top-S.base;
}

Status GetTop(SqStack S, SElemType &e)
{  // 若栈不空,则用 e 返回S的栈顶元素,并返回OK;否则返回ERROR
   if (S.top==0)  return ERROR;
   e=*(S.top-1);  //返回非空栈中栈顶元素
   return TRUE;
}

Status Push(SqStack &S, SElemType e) 
{ // 若栈不满,则将 e 插入栈顶
   if (S.top - S.base >= S.stacksize)  //栈满
      return OVERFLOW;
   *S.top++ = e;
    return OK;
}

Status Pop (SqStack &S, SElemType &e) {
     // 若栈不空,则删除S的栈顶元素,
     // 用 e 返回其值,并返回OK;
     // 否则返回ERROR
    if (S.top == S.base) return ERROR;
    e = *--S.top;
    return OK;
}

⌨️ 快捷键说明

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