[转载]C++堆栈的入门学习
申明: 转自 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++堆栈的入门学习的更多相关文章
- [转载] SSH入门学习基础教程
在Linux系统中,OpenSSH是目前最流行的远程系统登录与文件传输应用,也是传统Telenet.FTP和R系列等网络应用的换代产品.其 中,ssh(Secure Shell)可以替代telnet. ...
- OpenGL入门学习(转载)
说起编程作图,大概还有很多人想起TC的#include <graphics.h>吧? 但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率.16色 ...
- 【转载】salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建
salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建 VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的 ...
- 【转载】salesforce 零基础开发入门学习(五)异步进程介绍与数据批处理Batchable
salesforce 零基础开发入门学习(五)异步进程介绍与数据批处理Batchable 本篇知识参考:https://developer.salesforce.com/trailhead/for ...
- 【转载】salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解
salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解 建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schem ...
- 【转载】salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)
salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL) salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesfo ...
- 【转载】salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句
salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句 salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex ...
- 【转载】salesforce 零基础开发入门学习(一)Salesforce功能介绍,IDE配置以及资源下载
salesforce 零基础开发入门学习(一)Salesforce功能介绍,IDE配置以及资源下载 目前国内已经有很多公司做salesforce,但是国内相关的资料确是少之又少.上个月末跳槽去了新 ...
- Hadoop入门学习笔记---part4
紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...
随机推荐
- ZOJ 3699 Dakar Rally
Dakar Rally Time Limit: 2 Seconds Memory Limit: 65536 KB Description The Dakar Rally is an annu ...
- Shell入门教程:流程控制(4)case 条件判断
case的语法结构: case 待测项 in 样式串1] 命令区域1 ;; (样式串2) 命令区域2 ;; 样式串3) 命令区域3 ;; *) 命令区域 ;; esac 命令区域,可以是单一指令或多行 ...
- Shell入门教程:Shell函数详解
Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1.函数定义 ...
- html嵌入样式表
1.针对文件中的字体还有属性进行设置主要设置文字的大小及其颜色问题,未涉及div飘操作 处理页面CSS 先检测该内容部分是否已经设定了样式,如果没有单独设定再按照总体设计进行限定. eg: h1 h ...
- rabbitmq 简单梳理
概念: 生产者(Producer,简写P),负责发布消息. “交换机”(Exchange, 简写X), 负责中转消息. 路由(Route, 简写R), 即 X->Q的路线名. 消息队列 (Que ...
- mongoTemplate简单用法(增删改查)
分页时查找数量: public long countSample(String id) { Query query = new Query(); if (StringUtil.hasText(id)) ...
- CentOS7 词典
goldendict sudo yum install goldendict打开goldendict,阅读welcome,添加本地词典,在http://abloz.com/huzheng/stardi ...
- 【XLL 框架库函数】 TempErr/TempErr12
创建一个包含了 Excel 工作表错误的临时 XLOPER/XLOPER12 原型 LPXLOPER TempErr(WORD err); LPXLOPER12 TempErr12(BOOL err) ...
- 关于XSS(跨站脚本攻击)和CSRF(跨站请求伪造)
我们常说的网络安全其实应该包括以下三方面的安全: 1.机密性,比如用户的隐私被窃取,帐号被盗,常见的方式是木马. 2.完整性,比如数据的完整,举个例子,康熙传位十四子,被当时四阿哥篡改遗诏:传位于四子 ...
- appCan uexLocation 定位功能
js的引用: <script src="../js/zy_control.js"></script> <script src="../js/ ...