栈的学习

栈是一个线性数据结构。

栈有手写栈,STL栈,stack栈。

手写栈即用数组模拟栈,STL栈有vector栈,其次就是stack栈。

所需头文件:#include<stack>

栈的操作函数:

定义一个栈   stack<int>s;

bool empty()判断是否为空栈,若为空返回true

s.top()访问栈顶,取出最后进入的一个元素但不删除

s.push()进栈

s.pop()弹出栈(但不知道会弹到哪里)删除,但不返回该元素

s.size()返回栈内元素的大小

PS:进栈前首先检查栈是否已满,满则溢出。出栈前首先检查栈是否已为空栈,空则下溢。

对于出栈运算中的下溢,程序中仅给出了一个标志信息,而在实际应用中,下溢可用来作为控制程序转移的判断标志,是十分有用的。对于入栈运算中的上溢,则是一种致命的错误,将使程序无法继续运行,所以要设法避免。

栈的经典习题有车站调度,括号的匹配,后缀表达式(亦称逆波兰表达式)。

可以自己多做练习。

另外附上我们机房一位可爱的dalao的代码(密集恐惧症勿下滑)

#include<bits/stdc++.h>

using  namespace std;

int m;

int main(){

int a=100,b=200,c=300,a1,b1,c1;

for(int i=0;i<=233;i++)

for(int j=0;j<=467;j++)

for(int e=0;e<=700;e++)

if(a+i==(b+j)/2.000000&&a+i==(c+e)/3.000000)

if((a+i)%10!=(b+j)%10&&(b+j)%10!=(c+e)%10&&(a+i)%10)

if((a+i)/100!=(b+j)/100&&(b+j)/100!=(c+e)/100&&(a+i)/100)

if((a+i)/10%10!=(b+j)/10%10&&(b+j)/10%10!=(c+e)/10%10&&(a+i)/10%10)

if((a+i)/100!=(a+i)%10&&(a+i)/100!=(a+i)/10%10&&(a+i)%10!=(a+i)/10%10)

if((b+j)/100!=(b+j)%10&&(b+j)/100!=(b+j)/10%10&&(b+j)%10!=(b+j)/10%10)

if((c+e)/100!=(c+e)%10&&(c+e)/100!=(c+e)/10%10&&(c+e)%10!=(c+e)/10%10)

if((a+i)/100!=(b+j)%10&&(a+i)/100!=(c+e)%10&&(a+i)/100!=(b+j)/10%10&&(a+i)/100!=(c+e)/10%10)

if((a+i)/10%10!=(b+j)%10&&(a+i)/10%10!=(c+e)%10&&(a+i)/10%10!=(b+j)/10%10&&(a+i)/10%10!=(c+e)/10%10)

if((a+i)%10!=(b+j)%10&&(a+i)%10!=(c+e)%10&&(a+i)%10!=(b+j)/10%10&&(a+i)%10!=(c+e)/10%10)

if((b+j)/100!=(a+i)%10&&(b+j)/100!=(c+e)%10&&(b+j)/100!=(a+i)/10%10&&(b+j)/100!=(c+e)/10%10)

if((b+j)/10%10!=(a+i)%10&&(b+j)/10%10!=(c+e)%10&&(b+j)/10%10!=(a+i)/10%10&&(b+j)/10%10!=(c+e)/10%10)

if((b+j)%10!=(a+i)%10&&(b+j)%10!=(c+e)%10&&(b+j)%10!=(a+i)/10%10&&(b+j)%10!=(c+e)/10%10)

if((c+e)/100!=(b+j)%10&&(c+e)/100!=(a+i)%10&&(c+e)/100!=(b+j)/10%10&&(c+e)/100!=(a+i)/10%10)

if((c+e)/10%10!=(b+j)%10&&(c+e)/10%10!=(a+i)%10&&(c+e)/10%10!=(b+j)/10%10&&(c+e)/10%10!=(a+i)/10%10)

if((c+e)%10!=(b+j)%10&&(c+e)%10!=(a+i)%10&&(c+e)%10!=(b+j)/10%10&&(c+e)%10!=(a+i)/10%10)

if((c+e)/10%10!=0)

cout<<a+i<<' '<<b+j<<' '<<c+e<<endl;

return 0;

}

题目:洛谷,三连击

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容