데이터는 분석하고 정리하여 활용해야 유의미
데이터의 특징을 잘 파악, 분석, 정리, 활용해야
자료구조 : 단순구조(2진수, 정수/실수, 문자/문자열), 선형구조(리스트, 연결리스트- 단순, 이중, 원형, 덱, 스택, 큐), 비선형구조(트리 - 일반, 이진, 그래프 - 방향, 무방향), 파일구조(순차, 색인, 직접)
자주 쓰는 네 가지 자료구조 : Stack, Queue, Tree, Graph
[Stack]
LIFO (Last In First Out)
데이터 하나씩 넣고 뺌
하나의 입출력 방향
stack.push(), stack.pop()
push(): 스택에 데이터를 추가
pop(): 가장 나중에 추가된 데이터를 스택에서 삭제하고 삭제한 데이터를 리턴
size(): 스택에 추가된 데이터의 크기를 리턴
peek(): 가장 나중에 추가된 데이터를 리턴
show(): 현재 스택에 포함되어 있는 모든 데이터를 String 타입으로 변환하여 리턴
clear(): 현재 스택에 포함되어 있는 모든 데이터 삭제
ex. 인터넷 뒤로가기, 앞으로 가기
[Queue]
줄 서서 기다리다, 대기행렬
FIFO
데이터 하나씩 넣고 뺌
두 개의 입출력 방향
queue.add(), queue.poll()
add(): 큐에 데이터를 추가
poll(): 가장 먼저 추가된 데이터를 큐에서 삭제하고 삭제한 데이터를 리턴
size(): 큐에 추가된 데이터의 크기를 리턴
peek(): 큐에 가장 먼저 추가된 데이터를 리턴
show(): 큐에 들어있는 모든 데이터를 String 타입으로 변환하여 리턴
clear(): 큐에 들어있는 모든 데이터를 삭제
ex. 프린터 인쇄, 버퍼링