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

    线性表

    定义: 零个或多个数据元素的有限序列

    线性表_(linear list)_是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列

    是一个有限序列, 元素之间是有顺序的, 若元素存在多个, 第一个元素无前驱, 最后一个元素无后继, 其他每一个元素都只有一个前驱和后继

    线性表的实际存储方式, 分为两种实现模型

    1. 顺序表
      顺序表将元素顺序地存放在一块连续的存储区内__:连续存放__
    2. 链表
      将元素存放在通过链接构造起来的一系列存储块内__:分散存放__

    栈[FILO]

    栈的理解

    栈是一种容器,一种受限线性表__[先进后出]__, 可用顺序表或链表实现

    特点

    只允许在容器的一端__:[Top:容器的顶端],进行数据的操作:[栈顶加入数据:Push, 栈顶输出数据:Pop]__, 先进后出,默认操作此前存入的最后一个元素

    队列[FIFO]

    队列的理解

    队列是一种容器, 一种受限线性表__[先进先出]__, 可用顺序表或链表实现

    特点:

    只允许在一端进行插入操作__[队尾], 在另一端进行删除[队头]__操作的线性表, 不允许在中间部位进行操作

    栈与队列的相同点:

    1.都是线性结构。
    2.插入操作都是限定在表尾进行。
    3.都可以通过顺序结构和链式结构实现。、
    4.插入与删除的时间复杂度都是O(1),在空间复杂度上两者也一样。
    5.多链栈和多链队列的管理模式可以相同。

    栈与队列的不同点:

    1.删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。

    2.应用场景不同;

    栈:

    常见栈的应用场景包括括号问题的求解,表达式的转换和求值,函数调用和递归实现,深度优先搜索遍历等;

    队列:

    常见的队列的应用场景包括计算机系统中各种资源的管理,消息缓冲器的管理和广度优先搜索遍历等。

    3.顺序栈能够实现多栈空间共享,而顺序队列不能。

  • 相关阅读:
    反射
    java 验证码识别
    Spring boot + mybatis + orcale
    JVM内存模型及垃圾回收的研究总结
    Java的Array和ArrayList
    Java中最常见的十道面试题
    session和cookie
    Hibernate的load()和get()区别
    ajax跨域获取网站json数据
    对于Spring的IOc和DI的理解
  • 原文地址:https://www.cnblogs.com/amou/p/8983244.html
Copyright © 2011-2022 走看看