申明:   转自    http://www.cnblogs.com/pengshao/archive/2011/12/26/2301461.html

头文件stackDemo.h

 #pragma once//常用C++杂注,头文件最开始加入,能够保证头文件只被编译一次
typedef int DataType;
const int MaxStatckSize = ; //定义栈的大小
class StackDemo
{
public:
//析构造函数
StackDemo(void);
~StackDemo(void); //压栈出栈操作
void Push( DataType item);
DataType Pop(void);
void ClearStack(void); //访问栈顶,返回栈顶当前下标
DataType Peek(void)const; //检测椎栈
bool isEmpty(void)const;
bool isFull(void)const; private:
DataType stacklist[MaxStatckSize];
int tos;//栈顶
};

实现 stackDemo.cpp

 #include "StackDemo.h"
#include <iostream>
using namespace std;
StackDemo::StackDemo(void)
{
this->tos = -;
}
StackDemo::~StackDemo(void)
{
this->tos = -;
}
void StackDemo::Push( DataType item)
{
//栈是否已满
if (!isFull())
{
tos++;
this->stacklist[tos] = item; }
else
cout << "Out of the Stack!" << endl;
} DataType StackDemo::Pop(void)
{
if (!isEmpty())
{
int ebp = tos;
tos --;
return stacklist[ebp];
}
else
return -;
} DataType StackDemo::Peek(void)const
{
return tos;
} void StackDemo::ClearStack()
{
for (int i = tos; i >= ; i--)
stacklist[i] = ;
tos = -;
cout << "Clear stack done!" << endl;
} bool StackDemo::isFull(void)const
{
return tos > MaxStatckSize ? true : false;
} bool StackDemo::isEmpty(void)const
{
return tos < ? true : false;
}

main.cpp

 #include <iostream>
#include "StackDemo.h"
using namespace std; int main()
{
StackDemo *sd = new StackDemo();
sd->Push();//压栈
sd->Push();//压栈
sd->Push();//压栈
cout << "Stack TOP:" << sd->Peek() << endl;
for(int i=;i<;i++)
cout << "POP:" << sd->Pop() << endl; cout << "Stack TOP:" << sd->Peek() << endl; return ; }

  

[转载]C++堆栈的入门学习的更多相关文章

  1. [转载] SSH入门学习基础教程

    在Linux系统中,OpenSSH是目前最流行的远程系统登录与文件传输应用,也是传统Telenet.FTP和R系列等网络应用的换代产品.其 中,ssh(Secure Shell)可以替代telnet. ...

  2. OpenGL入门学习(转载)

    说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色 ...

  3. 【转载】salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建

    salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建   VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的 ...

  4. 【转载】salesforce 零基础开发入门学习(五)异步进程介绍与数据批处理Batchable

    salesforce 零基础开发入门学习(五)异步进程介绍与数据批处理Batchable   本篇知识参考:https://developer.salesforce.com/trailhead/for ...

  5. 【转载】salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解

    salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解   建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schem ...

  6. 【转载】salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)

    salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)   salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesfo ...

  7. 【转载】salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句

    salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句 salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex ...

  8. 【转载】salesforce 零基础开发入门学习(一)Salesforce功能介绍,IDE配置以及资源下载

    salesforce 零基础开发入门学习(一)Salesforce功能介绍,IDE配置以及资源下载   目前国内已经有很多公司做salesforce,但是国内相关的资料确是少之又少.上个月末跳槽去了新 ...

  9. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

随机推荐

  1. mongDB-- 3. 查询操作

    1. 准备工作 (1)启动mongo 进入mongo安装目录的bin/ 目录 , ./mongod (2)启动mongo客户端 ./mongo (3) 查看所有库 show dbs; (4) 切换到l ...

  2. MYSQL(二)

    上一篇文章讲的是mysql的基本操作,这一篇会有一点难以理解,本节主要内容mysql视图,存储过程,函数,事务,触发器,以及动态执行sql 视图view 视图是一个虚拟表,其内容由查询定义.同真实的表 ...

  3. 开大你的音响,感受HTML5 Audio API带来的视听盛宴

    话说HTML5的炫酷真的是让我爱不释手,即使在这个提到IE就伤心不完的年代.但话又说回来,追求卓越Web创造更美世界这样高的追求什么时候又与IE沾过边儿呢?所以当你在看本文并且我们开始讨论HTML5等 ...

  4. 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面

    详细错误:HTTP 错误 404.2 - Not Found. 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面. 出现环境:win7 + IIS7.0 解决办法 ...

  5. ecshop二次开发常用代码

    通过index控制循环次数.在循环中将index作为if的判断条件,对循环进行控制.这里index是从0开始的.如果index<2,会进行两次循环. <!--{foreach from=$ ...

  6. MySql: 忘记root密码

    win7 + mysql 5.6.35 C:\Windows\system32>mysql --versionmysql Ver 14.14 Distrib 5.6.35, for Win64 ...

  7. Koa2 的安装运行记录(一)

    1.参考koa+react(一) http://blog.suzper.com/2016/10/19/koa-react-%E4%B8%80/ 为了使用 KOA2 能够运行,必须能够使用ES7语法 a ...

  8. Outlook~设置

    outlook2013 中帐户设置无法直接更改邮件投递位置到本地的.pst文件,“更改文件夹”选项已经删除. Exchange 传递到 Outlook 数据文件 (.pst) 升级到 Outlook ...

  9. 安装oracle常见问题和解决方案

    ./runInstaller: line 95: [: too many arguments ./runInstaller: line 99: /home/oracle/oracle/database ...

  10. (转)EClipse插件推荐

    http://www.importnew.com/4707.html 来自非营利性Eclipse基金会的Eclipse IDE以其插件生态系统著称.Eclipse市场拥有海量插件可供下载,你可以通过插 ...