자료구조

자료구조?

데이터를 효율적으로 다룰 수 있는 방법

예) Stack, Queue, Tree, Graph

Stack

데이터(data)를 순서대로 쌓는 자료구조

1. 특징 : 후입선출

  • 입력과 출력이 하나의 방향으로 이루어지는 제한적 접근(LIFO(Last In First Out) 혹은 FILO(First In Last Out))
  • 데이터를 넣는 것을 ‘PUSH’, 데이터를 꺼내는 것을 ‘POP’
  • 한꺼번에 여러 개를 넣거나 뺄 수 없음

2. 명령어

Integer형 스택 선언 Stack<Integer> stack = new Stack<>();

push(): 스택에 데이터를 추가 pop(): 가장 나중에 추가된 데이터를 스택에서 삭제하고 삭제한 데이터를 리턴

3. Arraylist와 Stack

1) ArrayList로 Stack을 사용할 때 주의사항 추가 변형이 불가

2) Java의 배열로 Stack을 구현했을때 단점 최대 개수를 정해야 사용이 가능

Queue

줄을 서서 기다리다, 대기행렬

1. 특징 : 선입선출

  • 먼저 들어간 데이터(data)가 먼저 나오는 FIFO(First In First Out) 혹은 LILO(Last In Last Out)
  • Queue에 데이터를 넣는 것을 ‘enqueue’, 데이터를 꺼내는 것을 ‘dequeue’
  • 한꺼번에 여러 개를 넣거나 뺄 수 없음
  • 두 개의 입출력 방향

2. 명령어

int형 queue 선언 Queue<Integer> queue = new LinkedList<>();

데이터 넣기 queue.add();

데이터 빼기 queue.poll();