美文网首页
数据结构 — 队列和堆栈

数据结构 — 队列和堆栈

作者: leap_ | 来源:发表于2020-03-06 18:40 被阅读0次

队列 Queue

队列是一种FIFO的线性数据结构,front指针指向对头(第一个元素),rear指针指向队尾(最后一个元素的下一个空白的位置)

假溢出:
环形队列:

队列元素的判断:

  • 队列为空:front == rear
  • 队列为满: (rear+1)%N == front
  • 队列元素个数:(rear-front + N)%N

优先级队列 :

队列里的元素都有一个优先级,优先级高的先出队列

  • MessageQueue
  • PriorityQueue

栈 Stack

一种FILO的线性数据结构,只能在一段进行操作


应用:

  • 计算机计算,后缀表达式
  • activity活动栈
  • JVM内存模型的栈区(方法调用),帧栈(计算)

堆 Heap

堆通常可以看做一个完全二叉树

应用:

  • JVM堆,存放对象内存

栈解决了程序运行问题,堆解决了数据存储问题

  • Stack与heap都运行在内存上,在内存空间上字节码指令不必担心不同机器上的区别,所以JVM实现了与平台无关的特性。
  • JVM栈的每个栈帧(slot)大小都是4bytes,而一个slot恰好可以保持一个对象引用,所以引用永远是4bytes

相关文章

  • 在Python中实现两个堆栈的队列

    在Python中实现两个堆栈的队列。数据结构了解堆栈和队列。然后用两个堆栈实现一个队列。堆栈和队列都是列表。但它们...

  • 队列、堆栈和优先队列介绍及Redis实现

    前言 队列、堆栈和优先队列是编程中常见的数据结构。本文首先简单介绍一下这几种数据结构,然后介绍如何用Redis实现...

  • 数据结构-----堆栈和队列

    从数据(事物)转移到结构(组织方式) 数据是一种事物, 组织事物的方式方法有很多种,而这些方式方法就是我们所谓的结...

  • 数据结构 — 队列和堆栈

    队列 Queue 队列是一种FIFO的线性数据结构,front指针指向对头(第一个元素),rear指针指向队尾(最...

  • day14-09-集合框架(LinkList练习)

    使用LinkedList模拟一个堆栈或者队列数据结构。 堆栈:先进后出 如同一个杯子队列:先进先出 First i...

  • 堆栈

    #什么是“堆”,"栈","堆栈","队列",它们的区别 如果你学过数据结构,就一定会遇到“堆”,"栈","堆栈",...

  • 2018-12-28

    基于常见数据结构整理 数据结构 数据存储的常用结构有:栈、队列、数组、链表和红黑树 栈 1.stack,又称堆栈,...

  • 线性表

    数据结构: 数据项 数据对象 数据结构 线性表 队列 堆栈 树 (HashMap(1.8)内置红黑树) 图论 排...

  • 常见数据结构和算法

    常见数据结构 线性数据结构(按顺序具有数据元素的数据结构):数组,堆栈,链表(单链表 双链表),队列非线性数据结...

  • 数据结构和算法

    堆和栈 数据结构中的堆栈:堆:树状结构,是一种优先队列,先进先出栈:桶状结构,先进后出 操作系统中的堆栈:都是指内...

网友评论

      本文标题:数据结构 — 队列和堆栈

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