@@ -13,8 +13,8 @@ class DATA{
1313class SQType {
1414 static final int QUEUELEN = 15 ;
1515 DATA [] data = new DATA [QUEUELEN ]; // 队列顺序结构数组
16- int head; // 队头
17- int tail; // 队尾
16+ int head; // 队头
17+ int tail; // 队尾
1818}
1919```
2020在上述代码中,定义了队列结构的最大长度QUEUELEN,队列结构数据元素的类DATA及队列结构的类SQType。在类SQType中,data为数据元素,head为队头的序号,tail为队尾的序号。当head=0时表示队列为空,当tail=QUEUELEN时表示队列已满。
@@ -24,7 +24,7 @@ class SQType{
24241 . 按符号常量QUEUELEN指定的大小申请一片内存空间,用来保存队列中的数据。
25252 . 设置head=0和tail=0,表示一个空栈。
2626``` java
27- SQType SQTypeInit(){ // 队列初始化
27+ SQType SQTypeInit(){ // 队列初始化
2828 SQType q;
2929 if ((q= new SQType ())!= null ){ // 申请内存
3030 q. head = 0 ;
@@ -40,7 +40,7 @@ SQType SQTypeInit(){ // 队列初始化
4040## 判断空队列
4141判断空队列即判断一个队列结构是否为空。如果是空队列,则表示该队列结构中没有数据。此时可以进行入队列,但不可以进行出队列。
4242``` java
43- int SQTypeIsEmpty(SQType q){ // 判断队列空
43+ int SQTypeIsEmpty(SQType q){ // 判断队列空
4444 int temp = 0 ;
4545 if (q. head == q. tail)
4646 temp = 1 ;
@@ -51,7 +51,7 @@ int SQTypeIsEmpty(SQType q){ // 判断队列空
5151## 判断满队列
5252判断满队列即判断一个队列结构是否为满。如果是满队列,则表示该队列结构中没有多余的空间来保存额外数据。此时不可以进行入队列操作,但是可以进行出队列操作。
5353``` java
54- int SQTypeIsFull(SQType q){ // 判断队列满
54+ int SQTypeIsFull(SQType q){ // 判断队列满
5555 int temp = 0 ;
5656 if (q. tail== QUEUELEN ){
5757 temp= 1 ;
@@ -61,14 +61,14 @@ int SQTypeIsFull(SQType q){ // 判断队列满
6161```
6262## 清空队列
6363``` java
64- void SQTypeClear(SQType q){ // 清空队列
64+ void SQTypeClear(SQType q){ // 清空队列
6565 q. head = 0 ;
6666 q. tail = 0 ;
6767}
6868```
6969## 释放空间
7070``` java
71- void SQTypeFree(SQType q){ // 释放队列
71+ void SQTypeFree(SQType q){ // 释放队列
7272 if (q != null ){
7373 q = null ;
7474 }
@@ -85,7 +85,7 @@ int InSQType(SQType q, DATA data){ // 入队列
8585 System . out. println(" 队列已满! 操作失败!\n " );
8686 return 0 ;
8787 }
88- q. data[q. tail++ ] = data; // 顺序入队列,并将队尾指针+1
88+ q. data[q. tail++ ] = data; // 顺序入队列,并将队尾指针+1
8989 return 1 ;
9090}
9191```
@@ -97,12 +97,12 @@ int InSQType(SQType q, DATA data){ // 入队列
97972 . 从队列首部取出队头元素(实际是返回队头元素的引用)。
98983 . 设修改队头head的序号,使其指向后一个元素。
9999``` java
100- DATA OutSQType(SQType q){ // 出队列
100+ DATA OutSQType(SQType q){ // 出队列
101101 if (q. head== q. tail){
102102 System . out. println(" 队列已空! 操作失败!\n " );
103103 return null ;
104104 }else {
105- return q. data[q. head++ ]; // 顺序出队列,并将队首指针+1
105+ return q. data[q. head++ ]; // 顺序出队列,并将队首指针+1
106106 }
107107}
108108```
@@ -111,7 +111,7 @@ DATA OutSQType(SQType q){ // 出队列
111111## 读结点数据
112112读操作其实是读取队列头的数据。需要注意的是,读结点数据的操作和出队列操作不同。读结点数据的操作仅显示队列顶结点数据的内容,而出队列操作则将队列顶数据弹出,该数据不再存在。
113113``` java
114- DATA PeekSQType(SQType q){ // 读结点数据
114+ DATA PeekSQType(SQType q){ // 读结点数据
115115 if (SQTypeIsEmpty(q)== 1 ){
116116 System . out. println(" \n 空队列" );
117117 return null ;
@@ -124,7 +124,7 @@ DATA PeekSQType(SQType q){ //读结点数据
124124## 计算队列长度
125125计算队列长度即统计该队列中数据结点的个数。计算队列长度的方法比较简单,用队尾序号减去队头序号即可。
126126``` java
127- int SQTypeLen(SQType q){ // 计算队列长度
127+ int SQTypeLen(SQType q){ // 计算队列长度
128128 int temp;
129129 temp= q. tail - q. head;
130130 return temp;
0 commit comments