前两天自己照着一些博客仿写了栈的C++,其间也出了一些问题,但是通过调试,各个基本函数都得到了验证。当然可能存在我不知道的问题,如果有小伙伴验证我代码的时候出现了问题希望可以告知我一下,非常感谢。
代码如下:
Stack.h文件
#pragma once
//栈的基本函数实现
#include<iostream>
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef int ElemType;
//定义栈节点
struct StackNode
{
ElemType value;
StackNode *ptr;
};
//栈类及其相关函数
class Stack
{
public:
//构造函数
Stack();
//析构函数
~Stack();
//初始化栈
bool InitStack();
//销毁栈
bool DestroyStack();
//清空栈
void ClearStack();
//判断栈是否为空。是返回true,否则返回false
bool StackEmpty();
//返回栈长度
int StackLength();
//获取栈顶元素
ElemType GetTop();
//压栈
void Push(ElemType e);
//出栈
ElemType Pop();
//遍历栈内元素并输出显示,但同时会清空栈
void StackTraverse();
private:
StackNode *top;
StackNode *base;
int stacksize;
};
Stack.cpp文件
#include"Stack.h"
#include<stdio.h>
#include<stdlib.h>
//构造函数
Stack::Sta