zoukankan      html  css  js  c++  java
  • 下文摘自百度百科~~栈(stack)又名堆栈,它是一种特殊的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

    栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针
    栈是允许在同一端进行插入和删除操作的特殊线性表。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出(LILO)表。

    基本算法

    1.栈(PUSH)算法
    ①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);
    ②置TOP=TOP+1(栈指针加1,指向进栈地址);
    ③S(TOP)=X,结束(X为新进栈的元素);
    2.退栈(POP)算法
    ①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);
    ②X=S(TOP),(退栈后的元素赋给X):
    ③TOP=TOP-1,结束(栈指针减1,指向栈顶)。
    但是!有些人比较懒(跟我一样),那么,请使用STL大法吧!(逃
    STL中栈的定义:
    stack<int>stack1;//就是这种类型
    当然,如果要在STL中使用栈,要加上头文件#include<stack>!
    但是,,这个头文件只包括两个算法:进栈和出栈(真够少的)。。
    PS:下一篇随笔介绍——数据结构之队列。 
    转载是允许的,但是除了博主同意的情况下,必须在文章的明显区域说明出处,否则将会追究其法律责任。
  • 相关阅读:
    新概念第二册(1)--英语口语听力课1
    外企面试课程(一)---熟悉常见的缩略词
    公司 邮件 翻译 培训 长难句 结课
    workflow
    公司 邮件 翻译 培训 长难句 20
    公司 邮件 翻译 培训 长难句 19
    Engineering Management
    公司 邮件 翻译 培训 长难句 18
    公司 邮件 翻译 培训 长难句 17
    第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头
  • 原文地址:https://www.cnblogs.com/Xray-luogu/p/7761003.html
Copyright © 2011-2022 走看看