자료구조
-여러 데이터들의 묶음을 저장하고 사용하는 방법을 정의한 것
-데이터를 체계적으로 저장하고 효율적으로 활용하기 위해 사용
자료구조 특징
- 효율성 : 상황 및 목적에 적절한 자료구조를 선택으로써 효율적인 데이터 관리 가능
- 추상화 : 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념, 기능을 간소화
- 재사용성 : 특정 자료에 귀속되어 있지 않고 범용적으로 사용할 수 있도록 설계
자료구조 종류
- 선형 구조 : 자료를 구성하는 원소들을 하나씩 순차적으로 나열시킨 형태
- 비선형 구조 : 하나의 자료 뒤에 여러 개의 자료가 존재할 수 있는 형태

알고리즘
문제를 해결하기 위해 필요한 계산 절차나 처리 과정의 순서
알고리즘의 조건
- 입력 : 외부에서 제공되는 자료가 0개 이상 존재
출력 : 최소 1개 이상의 결과
- 명확성 : 각 단계는 명확하고 애매함이 없는 명령어로 구성되어야 하고 모든 과정은 명백하게 실행 가능한 것이어야 함
- 유한성 : 각 단계들은 유한한 횟수로 거친 후 유한한 시간 내에서 문제를 해결하고 종료해야 함
- 효과성 : 모든 연산들은 유한한 시간 내에서 정확하게 수행할 수 있을 정도로 충분히 단순해야 함
자료구조와 알고리즘의 관계
-보통 자료구조가 선택되면 그에 적용할 알고리즘은 거의 명확해짐
-자료구조가 효율적인 알고리즘을 사용할 수 있게 하면서 밀접한 관계를 가짐
-넓은 의미에서 프로그램 = 자료구조 + 알고리즘이라고 함