vc++栈的简单实现
栈的数据类型是先进后出
#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++栈的简单实现的更多相关文章
- hdu Train Problem I(栈的简单应用)
Problem Description As the new term comes, the Ignatius Train Station is very busy nowadays. A lot o ...
- 栈回溯简单实现(x86)
0x01 栈简介 首先局部变量的分配释放是通过调整栈指针实现的,栈为函数调用和定义局部变量提供了一块简单易用的空间,定义在栈上的变量不必考虑内存申请和释放.只要调整栈指针就可以分配和释放内存. ...
- Javascript的堆和栈的简单理解
<!doctype html> <html> <head> <meta charset="UTF-8"> <title> ...
- 栈及其简单应用(二)(python代码)
一.括号判定 前一篇文章我们介绍了栈的简单应用中,关于括号的判定,但那只是一种括号的判定,下面我们来介绍多种括号混合使用时,如何判断括号左右一一对应. 比如“{}{(}(][”这种情况,需要对一种括号 ...
- 栈及其简单应用(python代码)
栈属于线性结构(Linear Struncture),要搞清楚这个概念,首先要明白”栈“原来的意思,如此才能把握本质."栈“者,存储货物或供旅客住宿的地方,可引申为仓库.中转站,所以引入到计 ...
- 用VC调用EXCEL简单代码(转载自越长大越孤单,觉得很好)
首先在stdafx.h里加入对IDispatch接口提供支持的头文件: #include <afxDisp.h> 再在应用程序类的InitInstance()函数里加入: AfxOleIn ...
- VC++ CArchive及简单的文件操作方法
CArchive 方法用于存取文件 我向你推荐的是使用CArchive,它的使用方法简单且功能十分强大.首先还是用CFile声明一个对象,然后用这个对象的指针做参数声明一个CArchive对象,你就可 ...
- UVA442 Matrix Chain Multiplication 矩阵运算量计算(栈的简单应用)
栈的练习,如此水题竟然做了两个小时... 题意:给出矩阵大小和矩阵的运算顺序,判断能否相乘并求运算量. 我的算法很简单:比如(((((DE)F)G)H)I),遇到 (就cnt累计加一,字母入栈,遇到) ...
- Leetcode题目155.最小栈(简单)
题目描述: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中.pop() -- 删除栈顶的元素.top() -- 获取栈顶 ...
随机推荐
- @AGC037 - E@ Reversing and Concatenating
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个长度为 N 且只包含小写字母的字符串 S ,你可以执行 ...
- 计算php程序运行时间
<?php //程序运行时间 $starttime = explode(' ',microtime()); echo microtime(); /*········以下是代码区······· ...
- 【小程序案例】支付宝小程序-MQTT模器,IoT设备通过WSS接入阿里云IoT物联网平台
支付宝小程序-MQTT模拟器通过WSS接入阿里云IoT物联网平台 小程序效果: 1. 准备工作 1.1 注册阿里云账号 开通阿里云账号,并通过支付宝实名认证 https://www.aliyun.co ...
- PLSQL中的三种参数模式IN、OUT、IN OUT
原文链接:https://www.cnblogs.com/zbj815/p/6854108.html 1.IN模式 IN模式是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改 ...
- Python--day44--navicat使用(知道怎么用就好,要用终端操作,用这个会被人鄙视)
- Python--day43--补充之主键和外键
主键只有一个,但是可以用两列不为空的值组成:
- Python--day40--threading模块
import time from threading import Thread class MyThread(Thread): def __init__(self,arg): super().__i ...
- 读《Effect Java中文版》
读<Effect Java中文版> 译者序 序 前言 第1章引言 1 第2章创建和销毁对象 4 第1条:考虑用静态工厂方法代替构造函数 4 第2条:使用私有构造函数强化singleto ...
- LuoguP3045牛券Cow Coupons
LuoguP3045 [USACO12FEB]牛券Cow Coupons 果然我贪心能力还是太差了 ZR讲过的原题我回来对做法没有一丁点印象 有时候有这样一种题目 每个数有两种不同的价值 你可以选择价 ...
- [竞赛]Beat Matching(对拍)
对拍的基本理论这里恕我不一一叙述,不会的请转身到这里:http://blog.csdn.net/code12hour/article/details/51252457 分为以下几个部分: 1.暴力伪标 ...