프로그램 = 자료구조 + 알고리즘(ex. 최대값 탐색 프로그램 = 배열 + 순차탐색알고리즘)
배열
동일한 타입의 데이터를 저장, 고정된 크기, 인덱싱이 되어있어 인덱스 번호로 데이터에 접근(모든요소에 빠르게 접근이 가능)
Linked List
각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어있음. 배열의 크기를 미리 선언 해야하는 배열 리스트와 달리 LinkedList는 데이터의 숫자 만큼만 메모리를 사용하면 되어 메모리 낭비가 적음.
배열과 Linked List의 검색과 삽입삭제
검색
배열은 인덱스로 바로 찾기가 가능 -> 빠름
LinkedList는 Head 노드를 찾고, 해당 노드까지 타고타고 들어가야하기때문에 -> 느림
삽입/삭제
배열은 삽입/삭제시 뒤의 다른 노드들까지 다시 순번를 지정해 줘야함 -> 느림
LinkedList는 빈 메모리에 값과 포인터만 지정해주고 앞의 노드에서 포인터만 수정하면되서 -> 빠름
스택
후입선출. 같은 크기의 자료를 정해진 한방향으로만 입력,삭제 가능. 중간에 값을 끼워 넣을 수 없음.
큐
선입선출.
Tree