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:下一篇随笔介绍——数据结构之队列。 
    转载是允许的,但是除了博主同意的情况下,必须在文章的明显区域说明出处,否则将会追究其法律责任。
  • 相关阅读:
    Qt 去除控件边框线
    Qt 自定义可编辑 模型视图
    Qt double类型输出问题
    vue实例
    初识vue
    python中的数据类型
    python 列表解析式
    Goland常用快键键 mac pro
    文档对象模型DOM
    正则表达式
  • 原文地址:https://www.cnblogs.com/Xray-luogu/p/7761003.html
Copyright © 2011-2022 走看看