首页 > 编程语言 >学习笔记3——栈(C++版)

学习笔记3——栈(C++版)

时间:2024-08-29 14:51:30浏览次数:15  
标签:ListNode DataType top nullptr 笔记 next 学习 C++ StackNode

 接下来教大家如何实现一个栈,我们采用单链表的形式。其实说白了就是给单链表写个入栈和出栈的函数就好了。和上一篇文章说的一样,这里说的栈和stack容器是不一样的。

如何实现栈
1.定义链表节点
struct StackNode{
    DataType val;
    ListNode *next;
    ListNode(DataType x):val(x), next(nullptr){}
};
2.创建栈的结构体
struct Stack
{
    ListNode* top = nullptr;
    size = 0;
};
3.检查是否为空
bool isEmpty(){
    return top==nullptr;
}
4.编写入栈函数
void push(DataType x)
{
    StackNode* q = new StackNode(x);
    q->next = top;
    top = q;
}
//由此可见,栈顶是链表首元素
5.编写弹栈函数
DataType pop(){
    if(isEmpty()){
        throw std::out_of_range("Stack is empyty");
    }
    DataType value = top->val;
    top = top->next;
    return value;
}

至此,我们已经弄懂了栈的原理了,而关于栈的使用,只需要学会STL库中的stack容器即可。

标签:ListNode,DataType,top,nullptr,笔记,next,学习,C++,StackNode
From: https://blog.csdn.net/weixin_52133252/article/details/141640010

相关文章

  • 学习笔记2——队列(C++版)
    注意了,这里说的队列并不是STL容器库里面的queue。像链表、队列、栈、二叉树其实是一种数据结构,而vector、queue、set等是容器,是不同的概念。队列的实现可以有很多方式,可以用结构体内储存数组来实现,也可以用结构体内储存结构体来实现,我们这里选择后者。如何实现一个队列1.......
  • C++ 设计模式——桥接模式
    C++设计模式——桥接模式C++设计模式——桥接模式1.主要组成成分2.逐步构建桥接模式步骤1:创建实现接口步骤2:实现具体实现类步骤3:创建抽象类步骤4:实现扩展抽象类步骤5:客户端使用3.桥接模式UML图UML图解析4.桥接模式的优点5.桥接模式的缺点6.桥接模......
  • 【xilinx】米联客 2022 版 ZYNQ SOC SDK 入门篇学习04PS-XADC 实验
    1.了解内置XADC4.3内置XADC介绍4:XADC外部采集接口1:共模输入ADC的模拟输入使用差分采样方案来降低共模噪声信号的影响。下图显示了差分采样方案的优势,电源的噪声和地上的噪声相互抵消,从而提高采样精度。当采集外部模拟输入信号的时候,只需要把外部模拟信号接入到VP......
  • 【Markdown笔记】设置字体颜色——转载https://blog.csdn.net/u012028275/article/det
     【Markdown笔记】设置字体颜色dadalaohua于2021-04-0517:53:19发布阅读量5.7w 收藏 293点赞数103分类专栏: Markdown笔记 文章标签: markdown latex html版权GitCode开源社区文章已被社区收录加入社区Markdown笔记专......
  • 逆向学习随笔——VKD建立双机调试
    传统步骤请参照:https://cloud.tencent.com/developer/article/2195968  使用VirtualKD工具迅速建立双机调试环境:进入VMware虚拟机(版本越新越好,16支持安装Windows10,17及以上支持安装Windows11)安装Windows10或者Windows11虚拟机,根据操作系统安装指引完成OOBE并进入桌面。......
  • 黑马JavaWeb开发笔记09——ElementUI代码引入教程、Element常用组件使用(Table, Pagina
    文章目录前言ElementUI1.快速入门(代码引入教程)2.组件:Table表格3.组件:Pagination分页4.组件:Dialog对话框5.组件:Form表单总结前言本篇文章是2023年最新黑马JavaWeb开发笔记09:ElementUI代码进入教程、常用组件使用的总结,帮助需要学习Web开发的朋友温故而知新。El......
  • DL00489-基于深度学习的金属多轴疲劳寿命预测含数据集
    使用深度学习模型(CNN,LSTM和GRU)结合全连接层预测金属多轴疲劳寿命的代码。它处理数据集,利用高质量的数据来有效地训练和评估模型。主要功能是结合时间序列加载路径和材料力学性能对疲劳寿命进行预测。      ......
  • C#学习笔记- 随机函数Random()的用法详解
    原文链接:https://www.jb51.net/article/90933.htmRandom.Next()返回非负随机数;Random.Next(Int)返回一个小于所指定最大值的非负随机数Random.Next(Int,Int)返回一个指定范围内的随机数,例如(-100,0)返回负数1、random(number)函数介绍random(number)返回一个0~number-1之间......