
μ€νμ΄λ? μ½κ² 보면 λ°μ€ μκΈ°μ΄λ€.
νν λ°μ€λ μλμμλΆν° μλ‘ μ°¨κ³‘μ°¨κ³‘ μλλ€.
μλμ μλ λ°μ€λ₯Ό μΉμ°κΈ° μν΄μλ λ°λμ μμ μλ λ°μ€λ₯Ό λ΄λ €μΌ νλ€.

λ¨Όμ μμ κ²μ΄ λμ€μ λμ¨λ€. λμ€μ μμ κ²μ΄ λ¨Όμ λμ¨λ€.
=> μ μ νμΆ(FILO), νμ μ μΆ(LIFO)
μ°¨κ·Όμ°¨κ·Ό μ€νμ μμ보기
μ½μ (5) - μ½μ (2) - μ½μ (3) - μ½μ (7) - μμ () - μ½μ (1) - μ½μ (4) - μμ ()μ κ³Όμ μ μνν΄ λ³΄μ.
μ½μ (5)
5
μ½μ (2)
5 2
μ½μ (3)
5 2 3
μ½μ (7)
5 2 3 7
μμ ()
5 2 3
μ½μ (1)
5 2 3 1
μ½μ (4)
5 2 3 1 4
μμ ()
5 2 3 1
=> μ½μ μ ν΅ν΄ λ°μ΄ν°λ₯Ό μ°¨λ‘λλ‘ μκ³ μμ λ₯Ό ν΅ν΄ κ°μ₯ λ§μ§λ§μ λ£μ λ°μ΄ν°λ₯Ό λ΄λ³΄λΈλ€.
μ½λλ‘ κ΅¬ν
Stack<Integer> s = new Stack<>();
// μ½μ
(5) - μ½μ
(2) - μ½μ
(3) - μ½μ
(7) - μμ () - μ½μ
(1) - μ½μ
(4) - μμ ()
s.push(5);
s.push(2);
s.push(3);
s.push(7);
s.pop();
s.push(1);
s.push(4);
s.pop();
while (!s.empty()) {
System.out.print(s.peek() + " ");
s.pop();
}
μ€νκ³Ό ν¨κ» μ°μ΄λ ν¨μλ€
μμ μΆκ°
- push()
public E push(E item) {
addElement(item);
return item;
}
λ§€κ°λ³μ κ°μ΄ μ€νμ μ½μ λκ³ ν΄λΉ μμλ₯Ό λ°ννλ€.
μμ μμ
- pop()
public synchronized E pop() {
E obj;
int len = size();
obj = peek();
removeElementAt(len - 1);
return obj;
}
μ€ν μ΅μλ¨ κ°μ΄ μμ λκ³ ν΄λΉ μμλ₯Ό λ°ννλ€.
μμ μ½λμ whileλ¬Έ λΆλΆμ popλ§μ μ¬μ©ν΄μ λ κ°λ¨ν ꡬνμ΄ κ°λ₯νλ€.
while (!s.empty()) {
System.out.print(s.pop() + " ");
}
μ΅μλ¨ κ° νμΈ
- peek()
public synchronized E peek() {
int len = size();
if (len == 0)
throw new EmptyStackException();
return elementAt(len - 1);
}
μ€ν μ΅μλ¨ κ°μ λ°ννλ€.
μ€νμ΄ λΉμ΄μλ κ²½μ° ν΄λΉ λ©μλλ₯Ό νΈμΆνλ©΄ EmptyStackExceptionμ λ°μμν¨λ€.
μ€νμ΄ λΉμ΄μλμ§ νμΈ
- empty()
public boolean empty() {
return size() == 0;
}
μ€νμ΄ λΉμ΄μλ κ²½μ°λ trueλ₯Ό, λΉμ΄μμ§ μμ κ²½μ°λ falseλ₯Ό λ°ννλ€.
νΉμ μμ μ°ΎκΈ°
- search()
public synchronized int search(Object o) {
int i = lastIndexOf(o);
if (i >= 0) {
return size() - i;
}
return -1;
}
μ΅μλ¨μΌλ‘λΆν° ν΄λΉ μμκ° λͺ λ²μ§Έμ μμΉνλμ§λ₯Ό λ°ννλ€. (μ΅μλ¨μ κ²½μ° 1)
- κ°μ κ°μ μμκ° μ¬λ¬ κ° μ‘΄μ¬νλ κ²½μ°: μ΅μλ¨κ³Ό κ°κΉμ΄ κ°μ μλ²
- ν΄λΉ μμκ° μ‘΄μ¬νμ§ μλ κ²½μ°: -1
μμλ₯Ό λ€μ΄ μ΄ν΄λ³΄μ.
3 1 3 7
System.out.println(s.search(7)); // 1
System.out.println(s.search(3)); // 2
7μ΄ μ΅μλ¨μ μ‘΄μ¬νλ―λ‘ 1
3μ μ¬λ¬ κ° μ‘΄μ¬νλ―λ‘ μ΅μλ¨κ³Ό κ°κΉμ΄ κ°μ μλ²μΈ 2κ° μΆλ ₯λλ€.
Reference
μ΄κ²μ΄ μ½λ©ν μ€νΈλ€ - λλλΉ
'π¦ Data Structure' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μλ£κ΅¬μ‘°] ν(Queue) (Java) (0) | 2023.03.09 |
---|
λκΈ