数据结构与算法总结--栈

    科技2024-11-28  40

    文章目录

    栈的定义栈的特点为什么需要栈如何实现一个栈基本操作的性能栈的应用场景

    栈的定义

    栈是一种操作受限的线性表,只允许在一端进行插入和删除操作。

    栈的特点

    先进后出

    为什么需要栈

    虽然数组和链表更加灵活,并且都可以满足只在一端进行插入和删除操作的需求,但是由于会暴露其他操作,存在引发错误操作的风险,所以,当某个数据集合只涉及在一端进行插入和删除数据,并且满足先进后出的操作特性时,应首先使用栈这种数据结构。

    如何实现一个栈

    栈既可以用数组来实现,也可以用链表来实现 用数组实现的栈,叫顺序栈;用链表实现的栈,叫链式栈

    基本操作的性能

    入栈时间复杂度O(1), 空间复杂度O(1) 出栈时间复杂度O(1), 空间复杂度O(1)

    栈的应用场景

    函数调用

    为什么函数调用要用栈来保存临时变量? 函数调用符合后进先出的特性,用栈来实现最为合适。从调用函数进入被调用函数,变化的是作用域,从根本上讲,只要保证每进入一个新函数,都是一个新的作用域就可以,而实现这个,用栈最合适。进入被调用函数,分配一段栈空间给这个函数的变量,在这个函数结束的时候,将栈顶复位,正好回到调用函数的作用域。

    表达式求值(一个栈用于保存操作数,一个栈用于保存运算符)括号匹配
    Processed: 0.013, SQL: 8