美文网首页
Stack Queue

Stack Queue

作者: 日光降临 | 来源:发表于2019-02-14 21:52 被阅读0次
    1. 将1,2,3,4四个元素按顺序压入栈中,中间可以随时执行pop操作,
    则从栈中pop的元素顺序可能有多少种
    这么简单的一个题居然做错了,只好枚举出来:
    
    4第一个被pop出来的情况
    4 - 3 - 2 -1
    
    3第一个被pop出来(1,2,3依次入站,然后3出栈),4入栈和出栈两个动作肯定是相连的
    3 - 4 - 2 - 1
    3 - 2 - 4 - 1
    3 - 2 - 1 - 4
    
    2第一个被pop出来(1,2,依次入站,然后2出栈)
    2 - 1 - 3 - 4
    2 - 1 - 4 - 3
    2 - 3 - 1 - 4
    2 - 3 - 4 - 1
    2 - 4 - 3 - 1
    
    1第一个被pop出来
    1 - 2 - 3 - 4
    1 - 2 - 4 - 3
    1 - 3 - 2 - 4
    1 - 3 - 4 - 2
    1 - 4 - 3 - 2
    
    

    在函数调用的过程中,操作系统使用函数调用栈来维护函数调用的状态。每个函数运行过程中有一段属于自己的栈帧结构,主要用来记录一些临时变量和主调函数的返回地址,这样当被调函数执行结束之后可以根据这个地址返回主调函数中,从而实现了函数调用的过程。实例化的对象一般存储在堆中

    栈是一种线性的数据结构,其中特点是后进栈的元素会先出栈,先进栈的元素后出栈。在实际系统中,可以使用栈来维护函数调用的状态,非常有意义。使用链表模拟栈的过程中,链表的头部模拟栈顶,这样栈的push, pop, peek操作的时间复杂度都是O(1)

    相关文章

      网友评论

          本文标题:Stack Queue

          本文链接:https://www.haomeiwen.com/subject/jinyeqtx.html