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

    1、递归和栈的关系

    C允许一个函数调用其本身,这种调用过程被称作递归(recursion)。
    最简单的递归形式是把递归调用语句放在函数结尾即恰在return语句之前。这种形式被称作尾递归或者结尾递归,因为递归调用出现在函数尾部。由于为递归的作用相当于一条循环语句,所以它是最简单的递归形式。
    递归中必须包含可以终止递归调用的语句!
    递归的有点在于为某些编程问题提供了最简单的方法,而缺点是一些递归算法会很快耗尽计算机的内存资源。同时,使用递归的程序难于阅读和维护。

    所以消除递归不一定得用到栈,有时候用循环或者队列也可以解决

    2、尾指针的循环链表表示队列,则入队和出队算法的时间复杂度均为O(1)

    如果是表示的栈,出栈是需要遍历到尾结点的前一个,所以时间复杂度为O(n),入栈则是O(1)

    3、卡特兰数--n个不同元素进栈,出渣序列个数:

    1/(n+1)  *Cn2n

  • 相关阅读:
    不等式(一)-Markov与Chebyshev不等式
    决策树学习
    k-NN最近邻算法(k-nearest neighbors algorithm)
    梯度下降(Gradient Descent)数学原理分析与实例
    求解素数
    shell基础命令使用
    安装jenkins
    idea拉取git
    shell常用命令
    linux 安装jdk
  • 原文地址:https://www.cnblogs.com/zyqx/p/9414657.html
Copyright © 2011-2022 走看看