栈的数据类型是先进后出

 #ifndef __MYSTACK__
#define __MYSTACK__
#include <Windows.h>
typedef struct Node
{
int data; //数据
Node* next; //下一个节点
}NODE,*PNODE;
class Stack
{
public:
Stack();
~Stack();
public:
int pop(); //返回这个出栈的数据
BOOL push(int pS); //接收入栈的数据
BOOL empty(); //判断栈是否是null 如果是null返回TRUE
int treaverse(); //遍历所有数据 private:
PNODE m_pTop; //栈顶
PNODE m_pBottom; //栈底
};
Stack::Stack()
{
m_pTop = new NODE;
if(!m_pTop)return;
m_pTop->next = NULL; //下一个节点等于null
m_pBottom = m_pTop;
}
Stack::~Stack()
{
//析构
if (empty())
{
delete m_pTop;
}else
{
PNODE p = m_pTop;
while (p!=m_pBottom)
{
p = m_pTop->next;
delete m_pTop;
m_pTop = p;
}
delete m_pBottom;
} }
int Stack::push(int pS)
{
PNODE pNext = new NODE;
if(!pNext)return -;
ZeroMemory(pNext,sizeof(NODE));
pNext->data = pS; //传进来的参数
pNext->next = m_pTop;
m_pTop = pNext;
return true;
}
BOOL Stack::empty()
{
if (m_pTop == m_pBottom)
return true;
else
return false;
}
int Stack::pop()
{
int temp = NULL;
if (empty())
return -;
PNODE p = m_pTop->next;
temp = m_pTop->data; //获取到的数据
delete m_pTop;
m_pTop = p;
return temp;
}
int Stack::treaverse()
{
if(empty())return -;
PNODE p = m_pTop;
while(p!=m_pBottom)
{
printf("%d\r\n",p->data);
p = p->next;
}
}
#endif //__MYSTACK__

vc++栈的简单实现的更多相关文章

  1. hdu Train Problem I(栈的简单应用)

    Problem Description As the new term comes, the Ignatius Train Station is very busy nowadays. A lot o ...

  2. 栈回溯简单实现(x86)

    0x01  栈简介  首先局部变量的分配释放是通过调整栈指针实现的,栈为函数调用和定义局部变量提供了一块简单易用的空间,定义在栈上的变量不必考虑内存申请和释放.只要调整栈指针就可以分配和释放内存.   ...

  3. Javascript的堆和栈的简单理解

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. 栈及其简单应用(二)(python代码)

    一.括号判定 前一篇文章我们介绍了栈的简单应用中,关于括号的判定,但那只是一种括号的判定,下面我们来介绍多种括号混合使用时,如何判断括号左右一一对应. 比如“{}{(}(][”这种情况,需要对一种括号 ...

  5. 栈及其简单应用(python代码)

    栈属于线性结构(Linear Struncture),要搞清楚这个概念,首先要明白”栈“原来的意思,如此才能把握本质."栈“者,存储货物或供旅客住宿的地方,可引申为仓库.中转站,所以引入到计 ...

  6. 用VC调用EXCEL简单代码(转载自越长大越孤单,觉得很好)

    首先在stdafx.h里加入对IDispatch接口提供支持的头文件: #include <afxDisp.h> 再在应用程序类的InitInstance()函数里加入: AfxOleIn ...

  7. VC++ CArchive及简单的文件操作方法

    CArchive 方法用于存取文件 我向你推荐的是使用CArchive,它的使用方法简单且功能十分强大.首先还是用CFile声明一个对象,然后用这个对象的指针做参数声明一个CArchive对象,你就可 ...

  8. UVA442 Matrix Chain Multiplication 矩阵运算量计算(栈的简单应用)

    栈的练习,如此水题竟然做了两个小时... 题意:给出矩阵大小和矩阵的运算顺序,判断能否相乘并求运算量. 我的算法很简单:比如(((((DE)F)G)H)I),遇到 (就cnt累计加一,字母入栈,遇到) ...

  9. Leetcode题目155.最小栈(简单)

    题目描述: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中.pop() -- 删除栈顶的元素.top() -- 获取栈顶 ...

随机推荐

  1. Java练习 SDUT-2746_大小写转换

    大小写转换 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description X现在要学习英文以及各种稀奇古怪的字符的了.现在他想把一串字 ...

  2. Data Flow-File Read-网络距离

  3. Android读取sd卡

    public static String[] getStoragePaths() { List<String> pathsList = new ArrayList<String> ...

  4. 利用mock生成随机的东西

    Mock.mock({ "list|100": [ { 'id|+1': 1,//id排列 'color': '@color()',//随机颜色 'date': '@datetim ...

  5. python基础之内置装饰器

    装饰器 简介 功能与格式 内置装饰器 @classmethod @propertry @staticmethod 其它 ---------------------------------------- ...

  6. 什么是redis

    什么是redis 1.Redis是远程的 有客户端和服务端,客户端和服务端可以布置在不同的机器上,两者经过redis自定义的协议远程传输和交互的,我们一般说的是服务端. 2.Redis是基于内存的 所 ...

  7. 软件自动化测试 selenium IDE + Firebug + python脚本

    按顺序步骤来 一.安装软件   1.1.1 webDriver(就是selenium IDE) 解析:本来这两个东西就合成一个了,但是更新到后来,安装的时候又独立安装的.    安装  Python  ...

  8. win10 uwp 使用 AppCenter 自动构建

    微软在今年7月上线 appcenter.ms 这个网站,通过 App Center 可以自动对数千种设备进行适配测试.快速将应用发送给测试者或者直接发布到应用商店.做到开发的构建和快速测试,产品的遥测 ...

  9. java 菜单

    继承体系 MenuBar,Menu,MenuItem之间的关系: 先创建菜单条,再创建菜单,每一个菜单中建立菜单项. 也可以菜单添加到菜单中,作为子菜单. 通过setMenuBar()方法,将菜单添加 ...

  10. QuartusII 13.0的完美破解

    网络上破解QuartusII 13.0软件的方法都不行,最后经过本人总结测试(独创),最终实现了QuartusII 13.0的破解,破解方法如下: 网上常规操作之后,会得到一个“license.dat ...