栈的应用(基础讲解)

来源:互联网 发布:php程序设计案例教程 编辑:程序博客网 时间:2024/05/29 18:29
STACK

        栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。



       可用数组模拟:如图所示




      在STL中栈一共就5个常用操作函数(top()、push()、pop()、 size()、empty() )
        stack 头文件是:#include<stack>
                  还要加:using namespace std;


        stack<int>S-----------------------------栈定义
        S.top();-----------------------------------返回栈顶数据
        S.push(elem);--------------------------在栈顶增加elem数据
        S.pop();-----------------------------------弹出栈顶数据
        S.empty()-------------------------------判断栈是否为空 
        S.size()-----------------------------------返回栈中数据的个数

代码示例 :

         

#include<cstdio>#include<stack>   //栈头文件 using namespace std;   //要加这一句 int main(){stack<int>S;  //栈定义 一个整形的栈 if(S.empty()) // 判断栈是否为空 printf("空栈\n");S.push(1);   //在栈顶增加elem数据 S.push(2);S.push(3);int n=S.top();  //返回栈顶数据printf("栈顶数据:   %d\n",n);if(S.empty()) // 判断栈是否为空 printf("空栈\n");elseprintf("非空栈\n");int len=S.size();  //返回栈中数据的个数printf("栈长度:   %d\n",len);S.pop();  //弹出(删除)栈顶数据n=S.top();  //返回栈顶数据printf("栈顶数据:   %d\n",n);S.pop();  //弹出(删除)栈顶数据n=S.top();  //返回栈顶数据printf("栈顶数据:   %d\n",n);return 0; }

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一个月宝宝异常兴奋不睡觉怎么办 四个月宝宝晚上兴奋不睡觉怎么办 20个月宝宝半夜惊醒哭闹怎么办 小孩吃了氨茶碱兴奋不睡觉怎么办 孩子在学校被同学撞鼻骨折怎么办 孩子在学校无意致使同学受伤怎么办 9个月的宝宝吃坏东西腹泻怎么办 8个月发烧到38度怎么办 1岁半宝宝鼻塞发烧38度6怎么办 八个月的宝宝发热38度怎么办 八个月宝宝发热在38度怎么办 8个月孩子发烧38度怎么办 6个月孩子发烧38度多怎么办 7个月孩子发烧38度怎么办 小明上课总是东张西望你该怎么办 初中二年级贪玩游戏说不听怎么办 孩子上课经常和别的同学说话怎么办 小孩五年级了上课坐不住怎么办 孩子老是纠结小事抓不住重点怎么办 没文化不懂教不了孩孑怎么办 孩孑学习不好老师不让上课怎么办 5个月婴儿睡得少怎么办 教育案例——幼儿爱打小报告怎么办 上班的时候同事老是爱插话怎么办 孕晚期右侧卧睡觉宝宝好动怎么办 乐扣玻璃碗盖子长霉怎么办 乐扣保鲜盒密封圈有异味怎么办 8个月的宝宝不吃饭怎么办 宝宝十一个月了不爱吃饭怎么办 一岁八个月宝宝不爱吃饭怎么办 14个月的宝宝不爱吃饭怎么办 宝宝一岁多又黑又瘦又小该怎么办? 15个月宝宝偏瘦该怎么办 早期肺癌手术后身体瘦该怎么办 4个月婴儿的眼里有触摸糊怎么办 七个月宝宝断奶不喝奶粉怎么办 2个月的宝宝抓头怎么办 4岁宝宝吃东西一点都不认真怎么办 猫吐了白色黏液或泡沫怎么办 六个月的宝宝拉肚子老不好怎么办 小狗狗呕吐后拉肚子带血怎么办