C++——数据结构——栈

本文介绍了栈数据结构的基本原理,特别是其后进先出(LIFO)的特点。通过C++两种实现栈的方式进行了讲解,一是使用数组和指针自定义栈,二是利用C++标准库中的stack容器。文中详细展示了如何进行入栈、弹栈、查看栈顶元素以及判断栈空等操作,并给出了相关实例代码。同时,作者也欢迎大家在评论区指出可能存在的不足。
摘要由CSDN通过智能技术生成

近来赋闲,打算陆陆续续地整理一下有关数据结构的知识,大佬们可以浅浅过一下,萌新的话可以慢慢看

另:由于个人经验、技术有限,故难免存在不足,请在评论区指出

栈(stack)是在系统底层中被广泛使用的一种数据结构,遵循后进先出(last in first out,LIFO)原则,即最先入栈的元素最后一个出栈,反之亦然。

在C++中,我们有两种方式来实现栈,一种是用数组+指针自行实现

//建一个大小为N的栈
int st[N];
//定义一个指针用于指示位置,初始化为栈底
int *it = st;
//入栈
st[++*st] = num1;
//弹栈要注意数组越界的问题,当指针指向栈底(*st = 0)的时候就不能再弹栈
if(*st)--*st;
//清空
*st = 0;

 另一种则是使用C++自带的容器stack来实现(需调用头文件<stack>)

std::stack提供了一些成员函数,常用的有:

        top():返回栈顶元素

        pop():弹出栈顶元素,但无返回值

        push():压栈

        size():返回栈中的元素个数

        empty():返回栈是否为空

       下面是调用这些成员函数的一些实例

stack<int>st;//新建一个栈
st.push(1);//压入1
cout << "Top:" << st.top() << endl << "Size:" << st.size() << endl << "Empty:" << st.empty() << endl;
st.pop();//弹栈
cout << "Size:" << st.size() << endl << "Empty:" << st.empty() << endl;
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值