JAVA用String字符串存储数据实现队列和栈

       在定义队列和栈时,网上大多数都是用数组存储的,但是其实一种数据结构的实现是多样的,下面介绍一种用字符串实现栈和队列的方法。

一、队列

队列类的定义:以字符串存储数据,这里以“##”作为起始标志,数据之间以“,”隔开。入队时(inQueue)就是用“+”将数据拼接进字符串。出队时(outQueue)用StringAPI中的split(string s)函数,将字符串以“,”分割成数组,在队不为空的前提下,返回第一个数据(最先进入的数据)。即可实现队列先入先出的特点。

package JieGou;

public class Queue {

	private  static String data="##";
	
	public void inQuene(int i) {
		data=data+","+i;
		System.out.println("入队后"+data.replace("##,", "").replace(",", " "));
	}
	public int outQueue() {
	   String[] a=data.split(",");
	   if(a.length==1) {
		   System.out.println("队为空");
		   return 0;
	   }
	   else {
	   data="##,";
	   for(int i=2;i

测试函数: 

package JieGou;

public class TestQueue {
	public static void main(String []args) {
	Queue a=new Queue();
	a.outQueue();
	a.inQuene(10);
	a.inQuene(8);
	a.outQueue();
	a.inQuene(53);
	a.inQuene(9);
	a.outQueue();
	a.inQuene(77);
	}
}

运行结果:

JAVA用String字符串存储数据实现队列和栈_第1张图片

二、栈

栈的定义:栈是先入后出,所以入栈方法和队列一样,出栈返回最后一个数据(即栈顶数据)即可。

package JieGou;

public class Stack {

	private  static String data="##";
	
	public void inStack(int i) {
		data=data+","+i;
		System.out.println("入栈后,data中的数据为"+data.replace("##,", "").replace(",", " "));
	}
	public int outStack() {
	   String[] a=data.split(",");
	   if(a.length==1) {
		   System.out.println("栈为空");
		   return 0;
	   }
	   else {
	   data="";
	   for(int i=0;i

测试函数:

package JieGou;

public class TestStack {
	public static void main(String []args) {
		Stack a=new Stack();
		a.outStack();
		a.inStack(10);
		a.inStack(8);
		a.outStack();
		a.inStack(53);
		a.inStack(9);
		a.outStack();
		a.inStack(77);
		}
}

运行结果:

JAVA用String字符串存储数据实现队列和栈_第2张图片

 

你可能感兴趣的:(Java,栈和队列实现方法)