一,封装一个栈的简单结构
-
栈的最重要的特点相信大家都懂叭 ,如何不太清楚的话可以参考一下: 戳它!.
-
话不多说,上代码!!!
/**
* 用数组封装的队列结构
*/
public class MyStack {
int[] data;
int top = 0;
public MyStack(int size){
this.data = new int[size];
}
public void push(int val) throws Exception {//压入方法
if(top == this.data.length){
throw new Exception("满了");
}
data[top] = val;
top ++ ;
}
public int pop() throws Exception {//弹出方法
if(top == 0 ){
throw new Exception("为空");
}
top--;
return this.data[top];
}
public boolean isEmpty(){
if(this.top == 0)
return true;
else
return false;
}
}
二,利用现有的栈实现队列结构
/**
* 用两个栈模拟的队列结构
*/
public class MyQueue {
MyStack stack1;
MyStack stack2;
public MyQueue(int size){
stack1 = new MyStack(size);
stack2 = new MyStack(size);
}
public void push(int val) throws Exception {//存值
stack1.push(val);
}
public int pop() throws Exception {//取值
while(!stack1.isEmpty()){
stack2.push(stack1.pop());
}
int result = stack2.pop();
while(!stack2.isEmpty()){
stack1.push(stack2.pop());
}
return result;
}
}
到此一个简单的队列就算完成了 …
接下来我们来测试一下大致的存数据和取数据这两个功能吧
public class Main {
public static void main(String[] args) throws Exception {
MyQueue queue = new MyQueue(5);
queue.push(1);
queue.push(2);
queue.push(3);
queue.push(4);
queue.push(5);
int a = queue.pop();
int b = queue.pop();
int c = queue.pop();
int d = queue.pop();
int e = queue.pop();
System.out.println(a+" "+b+" "+c+ " "+d+" "+e);
}
}
看起来好像是那么回事噢,好的,拜拜~ 溜了溜了~