1. /**
2. * Queue.java
3. * 线性表之队列
4. * 队列有如下特点:
5. * 先进先出
6. * 即,从尾部添加(push)新数据
7. * 从头部取出(pop)数据
8. */
9.
10.
11. /**
12. * 队列(Queue)也是一种运算受限的线性表。
13. * 它只允许在表的一端进行插入,而在另一端进行删除。
14. * 允许删除的一端称为队头(front),允许插入的一端称为队尾(rear)。
15. */
16. package
17.
18.
19. /**
20. * @author sunxboy
21. * 9:59:59 AM May 22, 2007
22. */
23. public class
24.
25. int
26. int
27. int
28. int front; //允许删除的一端
29. int rear; //允许插入的一端
30. public Queue(int
31. this.maxSize = maxSize;
32. this.data = new int[maxSize];
33. 0;
34. 0;
35. 0;
36. }
37.
38. public boolean
39. return size==0;
40. }
41.
42. public boolean
43. return
44. }
45.
46. /**
47. * 循环队列
48. * @param data
49. * @return
50. */
51. public boolean push(int data)throws
52.
53. if(isFull())
54. throw new Exception("队列已满!");
55. size++;
56. this.data[rear]= data;
57.
58. // if(rear+1==maxSize)
59. // rear=0;
60. // else
61. // rear++;
62.
63. 1)%maxSize;
64.
65. return true;
66.
67. }
68.
69. public int pop() throws
70. int
71. if(isEmpty())
72. throw new Exception("队列是空的.");
73. this.data[this.front];
74.
75. this.size--;
76. // if(front+1==maxSize)
77. // front=0;
78. // else
79. // front++;
80. 1)%maxSize;
81. return
82. }
83.
84.
85. public static void main(String[] args) throws
86. new Queue(10);
87. 1);
88. queue.pop();
89. // queue.pop();
90. 2);
91. 3);
92. 4);
93. 5);
94. 6);
95. 7);
96. 8);
97. 9);
98. 10);
99. // queue.push(11);
100. while(!queue.isEmpty())
101. {
102. System.out.println(queue.pop());
103. }
104.
105. }
106. }
线性表之队列的实现
转载上一篇:名言系列(三)
下一篇:十句话,珍藏一辈子(转)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
1.链式存储的线性表——C语言实现
本文是作者学习数据结构过程中在单链表基本运算代码实现时遇到问题并解决问题后的结果
单链表 基本运算 存储结构 代码实现 -
【数据结构】详细剖析线性表
【数据结构】第二章——线性表(9)总结了线性表的基本知识点,并对循序表与链表进行了比较
数据结构 C语言 线性表 顺序表 链表 -
线性表--链队列(十二)
1.队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的
队列 链表 数据结构 链队列 线性表