package ch11;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
public class Ex10_2 {
public static void main(String[] args) {
Stack st = new Stack();
Queue q = new LinkedList();
//Queue는 인터페이스이기 때문에 직접 객체 생성 못함
// -> Queue를 구현한 LinkedList 사용
st.push("0");
st.push("1");
st.push("2");
System.out.println(st);
q.offer("0");
q.offer("1");
q.offer("2");
// LI(마지막에 저장한 데이터)가 1이 된다!! 1부터 시작!!
System.out.println("st.search(\"0\") :: "+st.search("0")); //3
System.out.println("st.search(\"1\") :: "+st.search("1")); //2
System.out.println("st.search(\"2\") :: "+st.search("2")); //1
System.out.println("= Stack =");
while(!st.empty()) {
System.out.println(st.peek());
System.out.println(st.pop());
}
System.out.println("= Queue =");
while(!q.isEmpty()) {
System.out.println(q.poll());
System.out.println(q.peek()); //예외 발생 X, null 반환
}
}
}
->
3
2
1
= Stack =
2
2
1
1
0
0
= Queue =
0
1
1
2
2
null
import java.util.Stack;
public class StackEx1 {
public static Stack back = new Stack();
public static Stack forward = new Stack();
public static void main(String[] args) {
goURL("1. 구글");
goURL("2. 야후");
goURL("3. 네이버");
goURL("4. 다음");
printStatus();
goBack();
System.out.println("== '뒤로' 버튼을 누른 후 ==");
printStatus();
goForward();
System.out.println("== '앞으로' 버튼을 누른 후 ==");
printStatus();
goURL("codechobo.com");
System.out.println("== 새로운 주소로 이동 후 ==");
printStatus();
}
public static void printStatus() {
System.out.println("back:: "+back);
System.out.println("forward:: "+forward);
System.out.println("현재화면은 '"+back.peek()+"'입니다.");
System.out.println();
}
public static void goURL(String url) {
back.push(url);
if(!forward.empty())
forward.clear(); //새로운 주소로 이동하니까, forward에 데이터가 없어야 함!!
}
public static void goForward() {
if(!forward.empty())
back.push(forward.pop());
}
public static void goBack() {
if(!back.empty())
forward.push(back.pop());
}
}
->
back:: [1. 구글, 2. 야후, 3. 네이버, 4. 다음]
forward:: []
현재화면은 '4. 다음'입니다.
== '뒤로' 버튼을 누른 후 ==
back:: [1. 구글, 2. 야후, 3. 네이버]
forward:: [4. 다음]
현재화면은 '3. 네이버'입니다.
== '앞으로' 버튼을 누른 후 ==
back:: [1. 구글, 2. 야후, 3. 네이버, 4. 다음]
forward:: []
현재화면은 '4. 다음'입니다.
== 새로운 주소로 이동 후 ==
back:: [1. 구글, 2. 야후, 3. 네이버, 4. 다음, codechobo.com]
forward:: []
현재화면은 'codechobo.com'입니다.