[转载]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程序进行操 ...
随机推荐
- 兼容IE6的min-width、min-height
如果一个站是宽屏的,你左右拖动浏览器的窗口网站宽度会随着窗口的大小而改变,而浏览器窗口宽度减小到一定程度后就会出现下边的滚动条,网站宽度就不会再减小了,我们知道这一简单的功能用css的min-widt ...
- ASP.NET Session 详解
阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解.否则,阅读过程中会在相应的内容上遇到不同程度的问题. 懂得ASP/ASP.NET编程 了解ASP/ASP.NET的Session模型 了 ...
- padding
padding-top:20px;上内边距 padding-right:30px;右内边距 padding-bottom:30px;下内边距 padding-left:20px;左内边距 paddin ...
- 进阶系列一【绝对干货】---SQL语句执行效率优化
1.尽量适用联接查询来取代子查询 2.如果要用子查询,用EXISTS替代IN.用NOT EXISTS替代NOT IN,因为EXISTS引入的子查询只是测试是否存在符合子查询中指定条件的行,效率较高.无 ...
- r-cnn学习(八):minibatch
这段代码包括由输入图片随机生成相应的RoIs,并生成相应的blobs,由roidb得到相应的 minibatch.其代码如下. # ---------------------------------- ...
- C段渗透攻击必看的技术知识
假设想攻击的主机IP是:61.139.1.79 同一子网下我们已有权限的主机IP是:61.139.1.88并可以3389登陆 第一步: tracert 61.139.1.1 C:\WIN200 ...
- Java MySql 批量插入数据库addBatch
//addBatch批量插入数据库 public static void insertCommentToMySql(Set<String> commentList) { Iterator& ...
- awk 双引号vs单引号
centos下面, awk '{...}' 和 awk "{...}" 差别是很大的: [ywt@YuWentao]$ echo "a b c d 1 2 3 4&quo ...
- MiniProfiler(MiniProfiler.EF6监控调试MVC5和EF6的性能)
git: https://github.com/MiniProfiler 以前开发Webform的时候可以开启trace来跟踪页面事件,这对于诊断程序的性能是有很大的帮助的,起到事半功倍的作用,今天 ...
- i春秋手动病毒查杀
1:查看系统进程程 tasklist命令 2:当任务管理器无法打开的时候可以利用 taskkill /f /im [程序所显示的pid] 两个参数的意思分别是强制和程序在内存中的印象 3:ms ...