数据结构——堆栈的C++实现

\qquad堆栈的创建、判断是否为空,入栈,出栈操作的C++实现。

#include<iostream>
using namespace std;//1.定义
typedef struct Node* Link;
struct Node {int num;Link next;
};//2.创建堆栈头结点
Link CreateStack()
{Link s;s = new Node;s->next = NULL;return s;
}//3.判断堆栈是否为空
int IsEmpty(Link s)
{return(s->next == NULL);
}//4.入栈
void Push(int num, Link s)
{Link L;L = new Node;L->num = num;L->next = s->next;s->next = L;
}//5.出栈,并返回出栈数据
int Pop(Link s)
{Link firstcell;int topnum;if (IsEmpty(s)) {cout << "堆栈空" << endl;return NULL;}else {firstcell = s->next;s->next = firstcell->next;topnum = firstcell->num;delete firstcell;return topnum;}
}
int main()
{Link top;int i;//创建堆栈头结点top = CreateStack();//将数据1,2,3,4,5压入栈中for (i = 1; i < 6; i++) {Push(i, top);Link top2 = top->next;cout << top2->num << endl;}//将堆栈上两个数据弹出栈for (i = 1; i < 3; i++) {cout << Pop(top) << endl;}}

数据结构——堆栈的C++实现相关推荐

  1. 数据结构堆栈 内存堆栈_了解堆栈数据结构

    数据结构堆栈 内存堆栈 In this article, we'll be understanding the working and the need for the Stack Data Stru ...

  2. 【数据结构-堆栈(顺序存储)GO语言实现】

    [数据结构-堆栈(顺序存储)GO语言实现] 顺序存储的堆栈可以看作是一个操作被限制的数组,遵循着后进先出**(LIFO)**的原则. 顺序存储的堆栈代码arrayStack.go package st ...

  3. 数据结构堆栈 内存堆栈_零堆栈数据科学家第二部分秋天

    数据结构堆栈 内存堆栈 In Hollywood, it is known that the sequels are rarely better than the original movie/par ...

  4. 内存中的堆栈和数据结构堆栈区别

    堆栈的认识 1.内存中的堆栈 代码区 静态数据区 栈区 堆区 2.数据结构中的堆栈 内存中的堆栈和数据结构堆栈不是一个概念,可以说内存中的堆栈是真实存在的物理区,数据结构中的堆栈是抽象的数据存储结构. ...

  5. 数据结构——堆栈——计算器的原理(中缀变后缀)

    定义:栈(stack)又名堆栈,它是一种运算受限的线性表.限定仅在表尾进行插入和删除操作的线性表.这一端被称为栈顶,相对地,把另一端称为栈底.向一个栈插入新元素又称作进栈.入栈或压栈,它是把新元素放到 ...

  6. C语言堆栈入门——与数据结构堆栈区别

    在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到.但对于很多的初学着来说,堆栈是一个很模糊的概念.堆栈:一种数据结构.一个在程序运行时用于存放的地方,这可能是很多初学者的认识 ...

  7. 基础数据结构-堆栈-拓展:行编辑

    使用C++的STL堆栈对象,编写程序实现行编辑功能.行编辑功能是:当输入#字符,则执行退格操作:如果无字符可退就不操作,不会报错 本程序默认不会显示#字符,所以连续输入多个#表示连续执行多次退格操作 ...

  8. 数据结构——堆栈的C语言实现

    1.什么叫堆栈? 2.堆栈的数据类型描述 3.堆栈顺序存储的C语言实现 #include<stdio.h> #include<stdlib.h>#define MaxSize ...

  9. 数据结构--堆栈应用:T型火车轨道的列车排列问题

    我们知道,堆栈在数据结构中扮演着重要的角色,而在理解堆栈先进后出的特性时,有一个经典的问题就是T型轨道的列车排列问题. 1.问题模型 2.基本思路 分析可知,这道题的考察点就是堆栈的先进后出特性的应用 ...

最新文章

  1. 为什么MySQL不推荐使用 UUID 或者雪花id作为主键?
  2. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动标准差(rolling std)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额标准差
  3. flex布局的盒子模型
  4. 贫血模型,充血模型(领域驱动设计)
  5. Android中从assets资源中读取图片文件并保存到内部存储器并加载显示在ImageView中
  6. 在iframe中显示嵌套网页的指定部分
  7. ~~单调队列(数据结构)(附题目)
  8. MATLAB 四元数旋转函数
  9. 解决iview中</Input>标签报错的方法
  10. 关于事务开启与否对数据库插入数据所需时间的影响的讨论
  11. java 视频处理_java使用ffmpeg处理视频的方法
  12. CSP-S2022游记
  13. 图解机器学习神器:Scikit-Learn
  14. C网跟G网是什么意思?
  15. ValueError X has 2 features, but LogisticRegression is expecting 5 features as input
  16. LeetCode #179 - Largest Number
  17. Maven项目在new module后,pom文件显示为Ignored pom.xml
  18. 第四次作业——个人作业——必应词典软件案例分析
  19. ERP系统类毕业论文文献都有哪些?
  20. python里小于号怎么打_如何在嵌入xml的python脚本中使用大于或小于符号?

热门文章

  1. LeetCode 988. 从叶结点开始的最小字符串(DFS)
  2. LeetCode 1310. 子数组异或查询(前缀异或)
  3. LeetCode 166. 分数到小数(小数除法)
  4. LeetCode 171. Excel表列序号(26进制转10进制)
  5. 回溯应用-- 0-1背包问题
  6. RSA公钥体系 与在 ssh中免密的登陆的应用
  7. DataFrame字符串之分割split()、清洗drop()、合并concat()、重新建立索引reset_index() - (Python)
  8. 论文阅读翻译(全)【一直更新】
  9. 李宏毅机器学习(一)基本概念介绍
  10. 谷歌大改Transformer注意力,速度大涨,显存大降!