C++顺序栈

本文介绍了C++顺序栈的基础知识,包括栈的基本操作如初始化、入栈、出栈和判断是否为空,还探讨了C++的参数传递方式。接着列举了栈在面试中的常见应用,如浏览器前进后退、括号平衡检查、表达式求值等。
摘要由CSDN通过智能技术生成

目录

基础知识

栈的基本操作

C++参数传递方式(补充知识):

代码实现:栈的初始化、入栈(push)、出栈(pop)、是否为空(isEmpty)等 

常见应用与面试题

1.实现浏览器的前进后退功能

2.检查表括号是否平衡

3.表达式求值

4.使用堆栈计算后缀表达式

5.对堆栈中的值进行排序

6.函数调用栈


基础知识

栈是一种“操作受限”的线性表,只允许在一端插入和删除数据。就像一摞叠放在一起的盘子,放盘子时从下往上一个个放,取盘子时从上往下一个个取,不能从中间抽出。后进者先出,先进者后出,这就是典型的“栈”结构。

从功能上来说,数组或者链表可以替代栈,但是特定的数据结构是对特定场景的抽象,而且数组或链表暴露了太多的操作接口,操作上自由灵活但是使用时比较不可控,自然就更容易出错。

当某个数据集合只涉及在一端插入和删除数据,并且满足后进先出出,先进后出的特性,这是我们就应首选“栈”这种数据结构。

顺序栈:用数组实现的栈。

链式栈:用链表实现的栈。

栈的基本操作

C++参数传递方式(补充知识):

  • 按值传递:调用函数本身不对实参进行操作,也就是说,即使形参的值在函数中发生了变化,实参的值也完全不会受到影响,仍为调用前的值。
  • 指针传递:地址传递与按值传递的不同在于,它把实参的存储地址传送给对应的形参,从而使得形参指针和实参指针指向同一个地址。因此,被调用函数中对形参指针所指向的地址中内容的任何改变都会影响到实参。
  • 引用传递:如果以引用为参数,则既可以使得对形参的任何操作都能改变相应的数据,又使得函数调用显得方便、自然。引用传递方式是在函数定义时在形参前面加上引用运算符“&”。

代码实现:栈的初始化、入栈(push

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值