【学习总结】java数据结构和算法-第三章-稀疏数组和队列
相关链接
目录
稀疏数组
-
稀疏数组介绍
-
图示
-
应用实例
-
代码实现
- SparseArray.java:与二维数组的转换,包括二维转稀疏,和稀疏转二维。
-
课后练习
队列
-
引入
- 先进先出,有序列表
- 可用数组或链表实现。数组(顺序存储),链表(链式存储)。
- 图示:使用数组模拟队列
-
数组模拟队列
-
思路:
-
-
问题:
- 目前数组不能复用,一次性。
- 使用取模的环形队列来改进
-
代码实现:
- ArrayQueueDemo.java:用数组实现队列的五个小功能,并通过主函数验证(因为还不是环形队列,存在一些缺陷)
-
数组模拟环形队列
-
分析
- 重新设置rear和front的初始值均为0,且front指向第一个元素,rear指向最后一个元素的后一个位置,并且预留一个空格的位置,即若只剩一个空,视为满。
- 队满:(rear+1)%maxSize == front;
- 队空:rear==front
- 元素个数:(rear-front+maxSize)%maxSize
-
图示
-