336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
스택에 대한 설명은 따로 하지 않겠다.
스택이나 자료구조는 동영상으로 공부하는 것이 훨씬 좋은 것 같다. 비록 알고 있는 내용이지만 다른 사람이 구현한 것과 내가 구현한 것의 차이를 비교하자면 다른 사람이 구현한 것이 훨씬 코드가 좋은 것을 깨달을 수 있었다.
아는 것과 구현하는 것은 다른 것 같다..
구현 내용 :
peek() : Stack 최상단에 있는 top data 반환(Stack에서 꺼내진 않음)
pop() : Stack에 있는 데이터 꺼내기
push() : Stack에 데이터를 삽입
isEmpty() : Stack 비어있는지 확인
empty() : Stack을 초기화
size() : Stack Size 반환
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | package study.stack; import java.util.EmptyStackException; class Stack<T> { Node<T> top = null; int size = 0; class Node<T> { T data; Node<T> next; Node(T data) { this.data = data; } @Override public String toString() { // TODO Auto-generated method stub return data.toString(); } } public void push(T data) { Node<T> node = new Node<T>(data); node.next = top; top = node; size++; } public T peek() { if(size <=0 || top == null) throw new EmptyStackException(); return top.data; } public T pop() { if(size <=0 || top == null) throw new EmptyStackException(); size--; T data = top.data; top = top.next; return data; } public boolean isEmpty() { return top == null && size == 0; } public int size() { return size; } public void empty() { size = 0; top = null; } } public class Main { public static void main(String[] args) { Stack<Integer> st = new Stack<Integer>(); st.push(1); st.push(2); st.push(3); st.push(4); System.out.println("==== size : " + st.size()); System.out.println(st.pop()); System.out.println(st.pop()); System.out.println("==== size : " + st.size()); System.out.println(st.peek()); System.out.println("==== empty : " + st.isEmpty()); System.out.println("==== size : " + st.size()); System.out.println(st.pop()); System.out.println(st.isEmpty()); System.out.println(st.pop()); System.out.println("==== empty : " + st.isEmpty()); System.out.println("==== size : " + st.size()); System.out.println(st.isEmpty()); } } |
'알고리즘 및 자료구조 > 자바로 만드는 자료구조' 카테고리의 다른 글
자바로 HashTable 구현하기 (0) | 2018.10.10 |
---|---|
자바로 Queue 구현하기 (0) | 2018.10.10 |
자바로 Tree 구현하기 (2) | 2018.09.18 |