題目描述:用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列更米,實(shí)現(xiàn)對了的兩個(gè)函數(shù) appendTail 和 deleteHead最岗,分別完成在隊(duì)列尾插入結(jié)點(diǎn)和在隊(duì)列頭部刪除結(jié)點(diǎn)的功能糊昙。
目的:體會下不同條件需要不同處理的妙處
代碼:
package com.guanstudy;
import java.util.Stack;
/**
- @date 2018年4月9日
- @author junpu.guan
- @param <T>
- @Description: TODO
**/
public class Test<T> {
private Stack<T> stack1 = new Stack<T>();
private Stack<T> stack2 = new Stack<T>();
public void appendTail(T t) {
stack1.push(t);
}
public T deleteHead() throws Exception {
if (stack2.isEmpty()) {
while (!stack1.isEmpty()) {
stack2.push(stack1.pop());
}
}
if (stack2.isEmpty()) {
throw new Exception("隊(duì)列為空僻造,不能刪除");
}
return stack2.pop();
}
public static void main(String args[]) throws Exception {
Test<String> t7 = new Test<>();
t7.appendTail("1");
t7.appendTail("2");
t7.appendTail("3");
System.out.println(t7.deleteHead());
t7.appendTail("4");
System.out.println(t7.deleteHead());
System.out.println(t7.deleteHead());
}
}