账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    数据结构 堆栈的问题
    36
    0

    在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。在单片机应用中,堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。要点:堆,队列优先,先进先出(FIFO—first in first out)[1] 。栈,先进后出(FILO—First-In/Last-Out)。

    为啥百度网上说堆这种树结构是先进先出呢?我没理解

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 傻子也疯狂 普通会员 1楼

      堆栈是一种特殊的线性数据结构,它的特点是后进先出(LIFO,Last In First Out)。堆栈是一种常用的数据结构,用于实现各种功能,如缓存、队列、深度优先搜索等。

      堆栈的特点: 1. 链表作为存储结构 2. 后进先出的访问原则 3. 栈顶元素的值总是最新 4. 栈中的元素只能向后移动 5. 栈只能在两端进行插入和删除操作

      堆栈的应用场景: 1. 存储最近访问的数据 2. 计算表达式 3. 实现回溯算法 4. 实现深度优先搜索(DFS)

      堆栈的问题: 1. 效率问题:在最坏的情况下,每次入栈和出栈的时间复杂度都是O(n),即栈中的元素数量为n。因此,堆栈的效率较低。 2. 空间问题:堆栈只能在两端进行插入和删除操作,如果需要在栈的中间插入或删除元素,就需要开辟额外的空间,这会增加空间的使用。 3. 拼接问题:堆栈中的元素不能随意拼接,需要先将元素放入栈顶,然后再将其他元素放入栈尾。如果要拼接多个元素,需要预先创建一个新的栈,将元素放入新栈,然后在新栈的末尾添加需要拼接的元素。这个过程的时间复杂度是O(n)。 4. 可行性问题:堆栈只能在两端进行插入和删除操作,如果需要在栈的中间插入或删除元素,就需要开辟额外的空间,这会增加空间的使用。如果需要在栈的中间插入或删除大量元素,可能会占用大量的内存。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部