데이터가 선처럼 일렬로 쭉 나열된 형태를 의미한다
선형구조에는 스택(Stack), 큐(Queue), 덱(deque), 순차 리스트, 연결 리스트가 있다
데이터가 일렬로 나열되지 않은 형태를 의미한다
비선형 구조에는 트리(Tree), 그래프(Graph)가 있다
스택(Stack)은 데이터를 차곡차곡 쌓아 올리는 '상자' 또는 '접시' 같은 자료구조이다
Stack<Integer> stackInt = new Stack<>();
Stack<String> stackStr = new Stack<>();
Stack<Boolean> stackBoolean = new Stack<>();
데이터 타입은 클래스 또는 래퍼 클래스로 선언할 수 있다
Stack<Integer> stack = new Stack<>();
stack.push(1); // 스택: [1]
stack.push(2); // 스택: [1, 2]
stack.push(3); // 스택: [1, 2, 3] (3이 맨 위)
int topItem = stack.pop(); // topItem = 3, 스택: [1, 2]
int peekItem = stack.peek(); // peekItem = 2, 스택: [1, 2] (변화 없음)
💡스택이 비어있는 상태에서 pop(), peek() 호출 시
EmptyStackException발생
true (비어있음), false (데이터가 있음)int size = stack.size(); // size = 2