Language/자료구조

Stack

JUNGKEUNG 2021. 7. 27. 17:22
반응형

LIFO(Last-IN-First-Out)

어떠한 데이터들을 순차적으로 저장할 수 있으며 입구와 출구가 하나밖에 존재하지 않는 자료구죠이다.

  • pop스택의 가장 최상위(마지막)에 위치한 데이터를 추출한 후에 스택에서 삭제한다
  • push스택의 가장 최상위(마지막)에 데이터를 삽입한다
  • clear스택에 저장된 모든 데이터를 삭제하고 스택을 초기화한다
  • peek스택의 가장 최상위(마지막)에 위치한 데이터를 추출한다.pop 메서드와는 달리 스택에서 데이터를 삭제하지 않는다
  • class JkStack {
    
        int top;
        int[] stack;
        int size;
    
        public JkStack(int size) {
            top = -1;
            stack = new int[size];
            this.size = size;
        }
    
        public int peek() {
            return stack[top];
        }
    
        public void push(int value) {
            stack[++top] = value;
            System.out.println(stack[top] + " Push");
        }
    
        public int pop() {
            System.out.println(stack[top] + " Pop");
            return stack[top--];
        }
    
        public void printStack() {
            System.out.println("-- Stack List --");
            for (int i = top; i >= 0; i--)
                System.out.println(stack[i]);
            System.out.println("-- End List --");
        }
    }
    
    public class Stack {
    
        public static void main(String args[]) {
    
            // 스택 동작 테스트
            JkStack st = new JkStack (100);
    
            st.push(5);
            st.push(2);
            st.push(3);
            st.push(4);
            st.push(1);
    
            st.printStack();
    
            st.pop();
    
            st.pop();
    
            st.push(15);
    
            st.printStack();
    
            st.peek();
    
            st.pop();
            st.pop();
            st.pop();
            st.pop();
            st.push(30);
            st.peek();
        }
    }

'Language > 자료구조' 카테고리의 다른 글

그래프(Graph) 과 DFS, BFS 구현  (0) 2021.11.13
배열에서 검색  (0) 2021.07.19
Tree 종류  (0) 2021.07.06