Professional Documents
Culture Documents
Day 02
Day 02
자료구조를 배워야 하는 이유
상황에 따라서 저장해야하는 구조의 방식이 다르기 때문에
자료구조의 종류
단순 구조
일반적인 변수(정수, 실수, 문자, 문자열, . . . )
선형 구조
데이터들의 앞 뒤 관계가 1:1 인 선형관계
리스트, 배열, 연결리스트, 스택, . . .
비선형 구조
데이터들간의 앞 뒤 관계가 1:N 또는 N:M 인 관계
트리, 그래프, . . .
-----------------------------------------------------------------------------------
-------------------------
노드(Node)
데이터 필드, 링크 필드
데이터를 담을 공간과, 다른 노드와의 관계를 저장할 공간
두 공간을 포함하고 있는 구조체로 표현한다.
리스트
유한한 원소의 나열된 묶음
인접리스트, 연결리스트
인접리스트(순차리스트, 선형리스트)
데이터의 논리적 순서와 같게 메모리에 저장이 된다.
논리적인 순서와 같게 물리적인 위치도 정해진다.
물리적인 순서와 논리적인 순서가 서로 같다.
배열
순차 자료구조의 단점
삽입 연산이나 삭제 연산 후에 연속적인 물리 주소를 유지하기 위해
원소들을 이동시키는 추가적인 작업이나 시간이 소요된다.
성능 저하로 직결
연결리스트
자료의 논리적 순서와 물리적 순서가 일치하지 않는 구조
각 원소(노드)에 저장되어 있는 다음 원소의 주소값에 의해 순서가 연결된다.
따라서 물리적인 순서를 맞출 필요가 없다
여러개의 작은 공간들을 연결해서 전체 구조를 표현한다
단순 연결 리스트 노드
데이터 필드 : 데이터 값
링크 필드 : next (다음 노드의 주소값 저장)
단순연결리스트의 구조
head 노드 --> 0 번 노드 --> 1 번 노드
head == 0 번 노드 --> 1 번 노드