栈的数据类型是先进后出

 1 #ifndef __MYSTACK__
 2 #define __MYSTACK__
 3 #include <Windows.h>
 4 typedef struct Node
 5 {
 6     int data;    //数据
 7     Node* next;    //下一个节点
 8 }NODE,*PNODE;
 9 class Stack
10 {
11 public:
12     Stack();
13     ~Stack();
14 public:
15     int pop();    //返回这个出栈的数据
16     BOOL push(int pS);    //接收入栈的数据
17     BOOL empty();        //判断栈是否是null 如果是null返回TRUE
18     int treaverse();    //遍历所有数据
19
20 private:
21     PNODE m_pTop;    //栈顶
22     PNODE m_pBottom;    //栈底
23 };
24 Stack::Stack()
25 {
26     m_pTop = new NODE;
27     if(!m_pTop)return;
28     m_pTop->next = NULL;    //下一个节点等于null
29     m_pBottom = m_pTop;
30 }
31 Stack::~Stack()
32 {
33     //析构
34     if (empty())
35     {
36         delete m_pTop;
37     }else
38     {
39         PNODE p = m_pTop;
40         while (p!=m_pBottom)
41         {
42             p = m_pTop->next;
43             delete m_pTop;
44             m_pTop = p;
45         }
46         delete m_pBottom;
47     }
48
49
50 }
51 int Stack::push(int pS)
52 {
53     PNODE pNext = new NODE;
54     if(!pNext)return -1;
55     ZeroMemory(pNext,sizeof(NODE));
56     pNext->data = pS;    //传进来的参数
57     pNext->next = m_pTop;
58     m_pTop = pNext;
59     return true;
60 }
61 BOOL Stack::empty()
62 {
63     if (m_pTop == m_pBottom)
64         return true;
65     else
66         return false;
67 }
68 int Stack::pop()
69 {
70     int temp = NULL;
71     if (empty())
72         return -1;
73     PNODE p  = m_pTop->next;
74     temp = m_pTop->data;    //获取到的数据
75     delete m_pTop;
76     m_pTop = p;
77     return temp;
78 }
79 int Stack::treaverse()
80 {
81     if(empty())return -1;
82     PNODE p = m_pTop;
83     while(p!=m_pBottom)
84     {
85         printf("%d\r\n",p->data);
86         p = p->next;
87     }
88 }
89 #endif //__MYSTACK__

转载于:https://www.cnblogs.com/guolongzheng/p/7283750.html

vc++栈的简单实现相关推荐

  1. 用C语言模拟栈(简单实现)

    //C语言模拟栈,简单实现 #include <stdio.h> #include <stdlib.h> typedef struct Node node; struct No ...

  2. 基于java的数据结构学习——数组实现的栈以及简单应用C++实现

    基于java的数据结构学习--数组实现的栈以及简单应用的 C++ 实现 源码: // // Created by PC-Saw on 2019/1/3. //#ifndef DATA_STRUCTUR ...

  3. 【数据结构】栈的简单理解以及对栈的基本操作

    一.静态栈的简单操作 先来简单的了解一下栈 1.栈:一种特殊的线性表,其实只允许在固定的一端进行插入或删除操作.进行数据插入和删除的一端称为栈顶,另一端称为栈底.不含任何元素的栈称为空栈,栈又称为 后 ...

  4. 数据结构栈的简单实现(JAVA)

    新的改变 栈是线性数据结构的一种,相当于一个箱子,如果向往箱子里放书,第一本书肯定是放入箱底,但是取出来的时候是从最上面开始取的,并拿不到最里面的东西,所以元素是先进后出的,栈最上面的元素为栈顶元素. ...

  5. 共享栈的简单实现(C语言)

    共享栈的简单实现(C语言) 认识共享栈 基本操作 入栈 出栈 读取栈顶元素 输出栈 定义 初始化 完整代码 认识共享栈 共享栈的本质就是一个数组存放两个栈,公用一个数组空间.由于顺序栈是创建时就固定了 ...

  6. 利用数组栈实现简单的四则运算

    栈实现简单四则运算 思路 需要两个栈,一个用来存数字,一个用来存符号 定义一个指针index用来遍历表达式 遍历表达式,index指向数字时,将该数字压入数字栈 这里需要注意:指向的数字并非是一位数, ...

  7. (C语言)静态栈编写简单计算器(感悟与详细解析)

    C语言数据结构静态栈--计算器的实现 下面我来详细的解释一下我编写的计算器代码.... 有必要先说明一下的是,此代码中含有两个栈:数据栈和算符栈: 数据栈:存放double型数字: 算符栈:存放cha ...

  8. hoj 1067 Rails //poj1363 Rails 栈的简单应用

    //ACM ICPC Central European Regional 1997 /* 简单的栈的应用,可惜WA了好几次 poj上要把最后的while后的cout<<endl;去掉 */ ...

  9. CCF 201903-2 二十四点 用栈模拟简单计算器

    二十四点 来源:CCF 背景 二十四点是一款著名的纸牌游戏,其游戏的目标是使用 3 个加减乘除运算使得 4张纸牌上数字的运算结果为 24. 题目 定义每一个游戏由 4 个从 1-9 的数字和 3 个四 ...

最新文章

  1. 汇编语言第五到八章总结
  2. SAP MM 事务代码MRKO触发的财务凭证不会出现在PO History里
  3. 反应机理_过敏反应的发生机理及表现
  4. 场外和场内的区别_3分钟看懂场内基金和场外基金的区别!
  5. visual studio c/c++报错:向“printf”传递了额外参数: _Param_(2) 未由格式字符串使用
  6. C++11多线程编程-两个进程轮流打印1~100
  7. html文字粒子效果简陋,5个很棒的CSS3文本粒子动画特效
  8. 无向图g的邻接矩阵一定是_矩阵是图
  9. 使用老毛桃U盘重装Windows10系统
  10. C# 列出进程以及详细信息
  11. 大数据_Flink_数据处理_运行时架构6_slot和并行度的关系---Flink工作笔记0021
  12. Junos: 使用之前
  13. 微信卡券开发错误自排查参考文档
  14. AndroidCamera学习笔记二 基本流程及框架
  15. linux硬盘的两个分区合并_linux 多分区合并(lvm)实例
  16. html中siblings方法,jQuery siblings()方法的用法
  17. android 5.1 壁纸路径,Android5.1 壁纸来源选项中有两个“壁纸”选项
  18. 论文解读:《多层肽 - 蛋白质相互作用预测的深度学习框架》
  19. 【罗技】M590 鼠标驱动
  20. Minecraft 1.16.5模组开发(五十四) 方块探测器(Detector)

热门文章

  1. 这样准备面试,薪资比预期至少多拿20%!
  2. 阿里云:面向5G时代的物联网无线连接服务
  3. java学习笔记-良葛格_Java良葛格 学习笔记《二》
  4. 关于cookie domain中的点前缀
  5. R软件的下载及安装(截图步骤详细)
  6. CNN卷积神经网络深度解析
  7. 深入理解Spark 2.1 Core (十三):sparkEnv类源码分析
  8. SpringBoot2.1+SpringCloud:注册中心搭建(Eureka)
  9. Elasticsearch技术解析与实战(六)Elasticsearch并发
  10. ansible基础配置