|
一、顺序栈
顺序栈是使用向量实现的栈。顺序栈的抽象数据类型如下:
//
设栈的类定义为stack,栈元素类型为浮点float类型
enum Boolean {True,False}
#include
<assert.h> // 引入逻辑断言语句
class Stack
{
public: float *ElmList;
//存放数据元素的指针变量int top;//该变量指示栈顶在该向量的位置,下标值 //
当新元素压入或栈内容弹出,top值随之增减 int
maxsize; // 栈的最大长度 //
构建函数,创建栈的实例,向量空间长度为size
Stack(int size); …
};
压入栈顶算法如下:
void Stack::Push(float item)
{ //
判非栈满,否则栈溢出,退出运行
assert(!IsFull()); top++;
// 栈顶 ElmList[top]
=
item;
}
从栈顶弹出算法如下:
float Stack::Pop()
{ //
判栈非空,否则断言栈空异常,退 //
出运行
assert(!IsEmpty());
return ElmList[top--];
}
|