#H11. MyStack
MyStack
Description
完成MyStack类
注意:提交的是以下代码,而不是MyStack.h!所完成的内容与本地环境完全相同,对应函数的内容复制填入即可
请在下述代码基础上进行实现,完成几个函数后提交
#include "MyStack.h"
// 判断栈空, 若为空栈,则Empty()返回true;否则返回false
bool MyStack::Empty() {
//请在这里完成你的代码
}
// 判断栈满,若栈满,则Full()为true;否则为false
bool MyStack::Full() {
//请在这里完成你的代码
}
// 元素e进栈,若栈满,则无法成功插入,插入成功返回true,否则返回false
// @param
// e: 将要入栈的元素
bool MyStack::Push(ElementType e) {
//请在这里完成你的代码
}
// 栈的顶元素拷贝到e,若栈为空,则无法拷贝,返回false,成功拷贝则返回true
// @param
// e: 指向存放栈顶元素地址的指针
bool MyStack::Gettop(ElementType &e) {
//请在这里完成你的代码
}
// 删除栈s的顶元素,并将删除的元素赋给e带出,若栈空,则无法成功删除,删除成功返回true,否则返回false
// @param
// e: 指向存放出栈元素地址的指针
bool MyStack::Pop(ElementType &e) {
//请在这里完成你的代码
}
Notes
MyStack.h
中 MyStack
类如下所示
#define MAXLENG 100
typedef int ElementType;
using namespace std;
/*
用数组模拟的顺序栈类
采用静态分配的方式实现
请参考ppt 第二讲 栈&队列 中如下页面:
5-11’ 15-18‘
*/
class MyStack {
public:
ElementType elem[MAXLENG]; // 模拟栈的静态数组
int top; // 栈顶指针, 注意本实现的顶元素为elem[top]!
// 初始化静态栈
// 本函数不需修改
void Initstack() {
memset(elem, -1, sizeof elem);
top = -1;
}
// 判断栈空, 若为空栈,则Empty()返回true;否则返回false
bool Empty();
// 判断栈满,若栈满,则Full()为true;否则为false
bool Full();
// 元素e进栈,若栈满,则无法成功插入,插入成功返回true,否则返回false
// @param
// e: 将要入栈的元素
bool Push(ElementType e);
// 栈的顶元素拷贝到e,若栈为空,则无法拷贝,返回false,成功拷贝则返回true
// @param
// e: 指向存放栈顶元素地址的指针
bool Gettop(ElementType &e);
// 删除栈s的顶元素,并将删除的元素赋给e带出,若栈空,则无法成功删除,删除成功返回true,否则返回false
// @param
// e: 指向存放出栈元素地址的指针
bool Pop(ElementType &e);
};