【学习总结】java数据结构和算法-第三章-稀疏数组和队列

相关链接

目录

稀疏数组

  • 稀疏数组介绍

  • 图示

  • 应用实例


  • 代码实现

    • SparseArray.java:与二维数组的转换,包括二维转稀疏,和稀疏转二维。
  • 课后练习

队列

  • 引入

    • 先进先出,有序列表
    • 可用数组或链表实现。数组(顺序存储),链表(链式存储)。
    • 图示:使用数组模拟队列
  • 数组模拟队列

    • 思路:


  • 问题:

    • 目前数组不能复用,一次性。
    • 使用取模的环形队列来改进
  • 代码实现:

    • ArrayQueueDemo.java:用数组实现队列的五个小功能,并通过主函数验证(因为还不是环形队列,存在一些缺陷)
  • 数组模拟环形队列

    • 分析

      • 重新设置rear和front的初始值均为0,且front指向第一个元素,rear指向最后一个元素的后一个位置,并且预留一个空格的位置,即若只剩一个空,视为满。
      • 队满:(rear+1)%maxSize == front;
      • 队空:rear==front
      • 元素个数:(rear-front+maxSize)%maxSize
    • 图示


  • 代码实现

END

posted @ 2019-10-08 17:05  anliux  阅读(763)  评论(0编辑  收藏  举报