栈的数据类型是先进后出

 #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. SPOJ 8073 The area of the union of circles (圆并入门)

    Sphere Online Judge (SPOJ) - Problem CIRU [求圆并的若干种算法,圆并扩展算法]_AekdyCoin的空间_百度空间 参考AekdyCoin的圆并算法解释,根据 ...

  2. Linux中使用gcc编译文件

    一个项目中可能有多个cpp文件,在linux下编译执行过程如下: g++ main.cpp distance.cpp ./a.out 即可一起编译两个文件,然后执行该程序.

  3. git 本地仓库操作

    一.git对象模型和存储 二.常用命令 1)git checkout branch 切换分支 假设现在有两个分支,master和dev分支 i dev分支上没有readme.txt 在master分支 ...

  4. 无旋treap hfq-treap

    怎么代码都这么长... #include<iostream> #include<stdio.h> #include<string.h> #include<al ...

  5. behavior planning——14.implement a cost function in C++

    n most situations, a single cost function will not be sufficient to produce complex vehicle behavior ...

  6. adblock自定义规则

    click.admaster.cn/* cm.baidu.com/* cm.pos.baidu.com/* cpro.baidu.com/* cpro.baidustatic.com/* dup.ba ...

  7. 2013年NOIP普及组复赛题解

    题目涉及算法: 计数问题:枚举: 表达式求值:栈: 小朋友的数字:动态规划: 车站分级:最长路. 计数问题 题目链接:https://www.luogu.org/problem/P1980 因为数据量 ...

  8. centos linux ip地址无法连接数据库,ssh登录服务器时必须使用22端口

    问题一:连接数据库时直接使用ip地址无法连接,必须使用ssh方式才能连接? 问题二:ssh登录服务器时必须使用22端口,在/etc/ssh/sshd_config中添加了10086端口,防火墙中已开启 ...

  9. Educational Codeforces Round 65 (Rated for Div. 2) E. Range Deleting(思维+coding)

    传送门 参考资料: [1]:https://blog.csdn.net/weixin_43262291/article/details/90271693 题意: 给你一个包含 n 个数的序列 a,并且 ...

  10. 改善Azure App Service托管应用程序性能的几个技巧

    本文介绍了几个技巧,这些技巧可以改善Azure App Service托管应用程序的性能.其中一些技巧是你现在就可以进行的配置变更, 而其他技巧则可能需要对应用程序进行一些重新设计和重构. 开发者都希 ...