zoukankan      html  css  js  c++  java
  • 栈与队列

    栈(FILO)

    • 栈(stack)是限定仅在表尾进行插入和删除操作的线性表
    • 下标为0的地方为栈底(固定),栈顶是一个指示栈顶元素在数组中的位置的变量top(类似与游标卡尺的游标),当栈存在一个元素时,top=0 ;空栈时,top=-1 ;添加元素进栈,则top值+1 ;元素出栈,则top值-1 ;top的最大值不能超过栈的大小

    线性栈

    特点
    • 栈顶进,放入栈底,然后从栈顶出。
    • 后进先出

    链栈

    • 链表实现
    应用
    • 递归

      • 把一个直接调用自己或通过一系列的调用语句间接地调用自己的函数,称做递归函数 。
    • 四则运算表达式求值

      • 中缀表达式转化为后缀表达式(栈用来进出运算的符号)
      • 将后缀表达式进行运算结果(栈用来进出运算的数字)
    • 递归与迭代区别

      • 选代和递归 的区别是:迭代使用 的 是循环结构,递归使用的是选择结构。递归能使程序 的 结构更清晰 、更简洁、更容易 让人理解,从而减少读懂代码的时间。但是大量的递归调用会建立函数的 副本,会耗费大量的时间和内存。选代则不需要反复调用函数和占用额外的内存。因此我们应该视不同情况选择不同的代码实现方式。

    队列(FIFO)

    • 队列( queue ) 是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。
    线性队列特点
    • 队头:下标为0的地方,用于出对列,出队列,则后面所有元素向前移(缺点 )

    • 待续

  • 相关阅读:
    母牛的故事
    python 实现计算数独
    java程序计算数独游戏
    《深入理解Java虚拟机》笔记7
    安装red5 1.0.1版本Java_home不能用Java7
    计算流图中的循环集合
    《深入理解Java虚拟机》笔记5
    《深入理解Java虚拟机》笔记4
    n的阶乘-编程2.md
    爬楼梯问题-斐波那契序列的应用.md
  • 原文地址:https://www.cnblogs.com/luckyCoder/p/12733159.html
Copyright © 2011-2022 走看看