![]() |
#2
nomify2011-10-15 22:37
|
stack.h

#ifndef _STACK_H
#define _STACK_H
#define STACK_INIT_SIZE 100
typedef struct tagSqStack{
int *base; // 栈底
int *top; // 栈顶
int stacksize;
} SqStack;
class stack
{
private:
SqStack S;
public:
int InitStack(); // 创建栈
void Push(int); // 向栈中放入数据[压栈]
void Pop(int &); // 从栈中取数据[弹栈]
int GetTop(); // 查看栈顶数据
}
#endif
stack.cpp

#include"stack.h"
#include<iostream>
using namespace std;
//???为了用new,是不是在这个cpp文件里写这个#include<iostream> using namespace std;
int InitStack() // 创建栈
{
S.base = new int[STACK_INIT_SIZE];
if (!S.base) return(-1);
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return(1);
}
void Push(int e) // 向栈中放入数据[压栈]
{
*S.top = e;
S.top++;
}
void Pop(int &e) // 从栈中取数据[弹栈]
{
if (S.top == S.base) return;
S.top--;
e = *S.top;
}
int GetTop() // 查看栈顶数据
{
if (S.top == S.base) return('E');
return(*(S.top-1));
}
[ 本帖最后由 影x 于 2011-10-15 22:36 编辑 ]