大限将至,咸鱼的我决定开始极限复习数据结构,零零散散记一些笔记吧。

基础概念

栈类的定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const int MAX_SIZE=100;      //定义栈最大值常量
class Stack
{
private:
char *data; //属性:线性表
int size; //属性:堆栈的实际大小
int top; //属性:栈顶
public
Stack(); //构造函数
Stack(int s); //有参构造函数
~Stack(); //析构函数
void push(char ch); //成员函数:入栈
char pop(); //成员函数:出栈并返回栈顶元素
char getTop(); //成员函数:获得栈顶元素(不出栈)
bool isEmpty(); //成员函数:栈是否为空
bool isFull(); //成员函数:栈是否满
void setNull(); //设置栈为空
};
Stack::Stack(){
size = MAX_SIZE;
top = -1;
data = new char[MAX_SIZE];//缺省构造函数分配最大内存空间
}
Stack::Stack(int s){
size = s;
top = -1;
data = new char[size]; //根据指定的大小分配栈的内存空间
}
Stack::~Stack(){
delete [] data; //内存回收
}