java顺序结构顺序 队列---顺序存储(源代码)
来源:互联网 发布:家境好的男生特点知乎 编辑:程序博客网 时间:2024/03/29 14:32
1.public class SequenceQueue<T> 2.{ 3. private int DEFAULT_SIZE = 10; 4. //保存数组的长度。 5. private int capacity; 6. //定义一个数组用于保存顺序队列的元素 7. private Object[] elementData; 8. //保存顺序队列中元素的当前个数 9. private int front = 0; 10. private int rear = 0; 11. //以默认数组长度创建空顺序队列 12. public SequenceQueue() 13. { 14. capacity = DEFAULT_SIZE; 15. elementData = new Object[capacity]; 16. } 17. //以一个初始化元素来创建顺序队列 18. public SequenceQueue(T element) 19. { 20. this(); 21. elementData[0] = element; 22. rear++; 23. } 24. /** 25. * 以指定长度的数组来创建顺序队列 26. * @param element 指定顺序队列中第一个元素 27. * @param initSize 指定顺序队列底层数组的长度 28. */ 29. public SequenceQueue(T element , int initSize) 30. { 31. this.capacity = initSize; 32. elementData = new Object[capacity]; 33. elementData[0] = element; 34. rear++; 35. } 36. //获取顺序队列的大小 37. public int length() 38. { 39. return rear - front; 40. } 41. //插入队列 42. public void add(T element) 43. { 44. if (rear > capacity - 1) 45. { 46. throw new IndexOutOfBoundsException("队列已满的异常"); 47. } 48. elementData[rear++] = element; 49. } 50. //移除队列 51. public T remove() 52. { 53. if (empty()) 54. { 55. throw new IndexOutOfBoundsException("空队列异常"); 56. } 57. //保留队列的rear端的元素的值 58. T oldValue = (T)elementData[front]; 59. //释放队列的rear端的元素 60. elementData[front++] = null; 61. return oldValue; 62. } 63. //返回队列顶元素,但不删除队列顶元素 64. public T element() 65. { 66. if (empty()) 67. { 68. throw new IndexOutOfBoundsException("空队列异常"); 69. } 70. return (T)elementData[front]; 71. } 72. //判断顺序队列是否为空队列 73. public boolean empty() 74. { 75. return rear == front; 76. } 77. //清空顺序队列 78. public void clear() 79. { 80. //将底层数组所有元素赋为null 81. Arrays.fill(elementData , null); 82. front = 0; 83. rear = 0; 84. } 85. public String toString() 86. { 87. if (empty()) 88. { 89. return "[]"; 90. } 91. else 92. { 93. StringBuilder sb = new StringBuilder("["); 94. for (int i = front ; i < rear ; i++ ) 95. { 96. sb.append(elementData[i].toString() + ", "); 97. } 98. int len = sb.length(); 99. return sb.delete(len - 2 , len).append("]").toString(); 100. } 101. } 102.}
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,只允许在表的后端(rear)进行插入操作。
- java顺序结构顺序 队列---顺序存储(源代码)
- java 顺序结构循环队列(源代码)
- java 数据结构之 顺序存储结构 队列
- 队列的顺序存储结构
- 队列的顺序存储结构
- 队列的顺序存储结构
- 队列的顺序存储结构
- 队列的顺序存储结构
- 队列的顺序存储结构
- 【队列】之顺序存储结构
- 关于顺序存储结构队列
- 队列的顺序存储结构---循环队列
- 队列的顺序存储结构(循环队列)
- 数据结构(队列):队列的顺序存储结构
- 队列(顺序存储) java实现
- 数据结构:队列的顺序存储结构(循环队列)
- 队列---顺序队列存储结构的不足(假溢出)
- 数据结构:队列的顺序存储结构(循环队列)
- JAVA动态代理实现aop的简单例子
- 《Java知识点列表》V1.0
- PXAlertView——可用来替代UIAlertView,iOS7风格。可自行定制
- C#获取Windows下光标位置[鼠标光标]
- Java 集合学习<1>HashSet
- java顺序结构顺序 队列---顺序存储(源代码)
- GAMIT基线与科傻COSAGPS基线区别
- The Ruby On Rials Gudie -- Active Record Migrations
- 如何解决pdf文件不能进行黄色标记的问题
- NP,NPC,NPH,强NPC问题
- Java 集合学习<2>TreeSet
- Android学习路线
- Java 集合学习<3>Iterator
- MySQL AB复制