-> 자료를 저장하기 위한 주머니(자료를 저장하는 구조)
-> 목적에 맞는 이 주머니를 어떻게 디자인 할 것인가를 중점적으로 고민!
목적을 성취하기 위한 자료구조를 디자인하는 능력 기르기
-> 가장 기본적인 자료구조
-> 변수의 나열 / 배열 또한 자료구조
장점 : i번째 원소를 바로 알 수 있다
단점 : 원소의 삽입/삭제가 까다롭다
-> 여러개의 변수를 저장하는 다른 방법
장점 : 배열과 비교 시 원소의 삽입/삭제가 빠르다
단점 : i번째 원소를 알기가 쉽지 않다
-->> 자료구조 구현의 핵심!
구조체(struct)
-> 캡슐화의 구현
ex>
struct Point{
int x;
int y;
int getSum(){
return x+y;
}
};
// Point p;
// p.getSum(); == p의 현재 x,y 값의 합을 리턴
#include <stdio.h>
struct Point{
int x;
int y;
int getSum(){
return x+y;
}
};
int main() {
Point p1, p2;
p1.x = 1;
p1.y = 2;
p2.x = 3;
p2.y = 4;
printf("%d\n", p1.getSum());
printf("%d\n", p2.getSum());
return 0;
}
// main 안에서는 getSum의 내부가 어떻게 이루어져 있는지는 알 필요 없음
struct를 사용하여 Point라는 자료구조를 "정의"!
Point라는 자료구조 p1, p2 "선언"
-> Point 라는 struct의 인스턴스 p1, p2
-> 캡슐화를 위해서
어떤 목적으로 각각의 자료구조를 써야하는지를 항상 생각하자!!