栈的实现 - C++

   栈是一个重要的数据结构,其特性简而言之就是“后进先出”,这种特性在计算机中有着广泛的运用。其实程序员无时无刻不在使用者栈,函数的调用是我们间接使用栈的最好的例子,但是栈在实际中的运用远不止这些,比较经典的应用还包括判断平衡符号、实现表达式的求值,在路径探索中保存路径也是栈的经典应用之一。具体问题具体分析,但是只要满足“后进先出”的特性,都可以应用栈这一数据结构。

   栈的基本操作包括入栈(push)、出栈(pop)、判空(isEmpty)等,在此给出一个基于C++的栈的实现。其中,将栈封装为一个类MyStack,基本数据成员包括用于存储访问栈中元素的指针data、栈顶元素索引top,以及用于控制栈大小的size和increment;栈的每一种基本操作都对应一个成员函数,除了上述的三个基本操作外,还包括判满(isFull)、取栈顶元素(getTopElement)和打印栈中元素(printStack)。

MyStack.h

#ifndef _MYSTACK_H_
#define _MYSTACK_H_

#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <iomanip>
using namespace std;

#define INISIZE         2
#define INIINCREMENT    2

#define DYNAMIC

typedef int elementType;

class MyStack {
public:
    int top;
    int size;
    int increment;
    elementType * data;
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值