zoukankan      html  css  js  c++  java
  • 数据结构笔记——栈

    栈的应用及构造

    栈的简介

    栈是一种只能从一端进行删除和插入的线性结构。因此栈具有后进先出的特点。例如进栈顺序是12345,如果5是第一个出栈的数字,则接下来出栈的一定是4,3,2,1。由于栈后进先出的特点,所以栈经常被递归算法调用,此时栈被称为递归工作栈。从栈的容量来看,栈可被分为动态栈可静态栈。动态栈顾名思义即使栈的容量可变,静态栈即是栈的容量是固定的。

    用顺序表构造的静态栈及其操作

    1.栈的构造:申请给定大小空间,将栈顶指针指向栈底。
    2.栈的初始化:将栈的栈顶指针指向栈底。
    3.栈的插入:先检查是否栈满,若栈满,则报错。否则将栈顶指针上移一个单位,将元素插入栈顶。
    4。栈的删除:先检查是否栈空。若栈空,则报错。否则,删去栈顶元素,将栈顶下移一个单位。

    用顺序表构造的动态栈及其操作

    1.栈的构造:申请一定大小的空间。将栈栈顶指针指向栈底(-1)。
    2.栈的初始化:将栈顶指针指向栈底(-1)
    3.栈的插入:先检查是否栈满,若栈满,则申请一个是此时栈两倍大小新栈。将旧栈内容复制到新栈。并将旧栈空间释放。然后将栈顶指针上移一个单位。然后将新数据插入到栈顶指针所指位置。。
    4.栈的删除:先检查是否、栈空,若栈空,则报错。否则删除栈顶元素,并将栈顶元素下移一个单位。

    用链表构造的动态栈及其操作

    1.栈的构造:申请栈节点指针并赋值null(此栈节点指针即是栈顶指针)
    2.栈的初始化:将原有栈节点空间一个一个释放,并将栈顶指针指向空节点。
    3.栈的插入:申请一个新的栈节点,将插入数据放在此新申请节点的数据域。并将此新栈节点链入栈顶。将栈顶指针指向此新栈节点。
    4.栈的删除:先检查是否栈空。若栈空,则报错。否则将栈顶节点删除,并将栈顶指针指向下一个栈节点。

  • 相关阅读:
    【linux】在命令行里进行数学计算
    vi编辑器的分割窗口
    Linux 磁盘管理命令
    【Matlab】sparse函数和full函数(稀疏矩阵和非稀疏矩阵转换)
    【R】 绘制 热图 heatmap
    Intent用法实例
    Android调用天气预报的WebService简单例子
    Broadcast广播消息
    Android与服务器端数据交互(基于SOAP协议整合android+webservice)
    Java中String类的方法及说明
  • 原文地址:https://www.cnblogs.com/sunhere/p/8290008.html
Copyright © 2011-2022 走看看