注:java用String存储数据实现栈的出栈入栈:https://blog.csdn.net/qq_34746239/article/details/88128648
一、队列
定义:用字符串存储数据,以"##"为起始标志,数据以“,”隔开。
入队时(inQueue)用“+”将数据拼接进字符串。
出队时(outQueue)用split(String s)函数将字符串以“,”为界限分割成数组。在队列不为空的前提下,返回第一个数据(最先进入的数据),以此实现队列先入先出的特点。
定义Queue类:
package queue;
public class Queue {
private static String data="##";//以"##"为起始标志
//入队
public void inQueue(int i){
data=data+","+i;
/*replace()方法:
*通过用 newChar字符替换字符串中出现的所有 oldChar 字符,并返回替换后的新字符串。
*语法:public String replace(char oldChar,char newChar)
*/
//System.out.println(data);
System.out.println("入队后"+data.replace("##,", "").replace(",", " "));
}
//出队
public int outQueue(){
String[] a=data.split(",");//split() 方法根据匹配给定的正则表达式","来拆分字符串
if(a.length==1){
System.out.println("队为空");
return 0;
}else{
data="##,";//给data重新赋初值
for(int i=2;i<a.length;i++){//从i=2开始是为了删除i=1的值即队首的值
data+=a[i];
if(i!=a.length){
data+=",";
}
}
System.out.println("出队后"+data.replace("##,", "").replace(",", " "));
return Integer.parseInt(a[1]);
}
}
}
定义测试类:
package queue;
public class testQueue {
public static void main(String []args) {
Queue a=new Queue();
a.outQueue();
a.inQueue(10);
a.inQueue(8);
a.inQueue(11);
a.outQueue();
a.inQueue(53);
a.inQueue(9);
a.outQueue();
a.inQueue(77);
}
}
测试结果如下: