방송대: 4개의 글
1. 리스트의 개념 리스트의 예 - 리스트는 배열과 달리 원소들 간의 논리적인 순서를 위한 자료구조이다. - 원소들 간의 순서는 논리적으로(추상적으로) 지켜지며 원소가 저장되는 물리적인 위치는 상관하지 않는다. - 배열의 순서 : 물리적 VS 리스트의 순서 : 논리적=추상적=의미적 - 배열을 이용해 리스트를 구현하면 논리적인 순서를 지키기 위해 원소의 이동이 많아진다. - 따라서 리스트는 일반적으로 포인터 변수를 이용한 연결 리스트를 이용한다. - 포인터 변수 : 다음 원소를 가리키는 위치 저장 - 포인터 변수와 동적 메모리 할당을 이용해 메모리 낭비를 막을 수 있다. 2. 배열을 이용한 리스트의 구현 자료의 삽입, 삭제가 빈번히 발생하는 상황에서 리스트를 배열로 구현하는 것은 자료 이동으로 인해 컴퓨팅..
1. 큐(queue)의 개념 큐는 줄을 선 순서대로 처리되는 모습으로 표현할 수 있다. - 큐의 스택의 공통점은 객체와 그 객체가 저장되는 순서를 기억하는 방법에 관한 추상 자료형이라는 것 - 가장 먼저 입력된 자료가 가장 먼저 출력되는 관계를 표현한다. - FIFO(First In First Out, 선입선출) - FCFS(First Come First Servce, 선착순 서브) - 한쪽 끝에서는 원소의 삽입 연산만, 다른 한쪽 끝에서는 삭제 연산만 발생 - 두개의 큐 포인터 변수(일반적으로 front, rear로 명명)를 사용한다. - front는 큐의 삭제가 발생하는 지점을 가리킨다. - rear는 큐의 삽입이 발생하는 지점을 가리킨다. - 삽입 시 rear를 증가시키고 삭제 시 front를 감소..
1. 스택(Stack)의 개념 스택은 이 동전 더미처럼 위로 쌓아올린 모습으로 표현할 수 있다. - 스택은 객체와 그 객체가 저장되는 순서를 기억하는 방법에 관한 추상 자료형이다. - 가장 늦게 입력된 자료가 가장 먼저 출력되는 관계를 표현한다. - LIFO(Last In First Out, 후입선출) - 하나의 스택 포인터 변수(일반적으로 top으로 명명)를 사용한다. - top은 스택의 삽입과 삭제가 일어나는 지점을 가리킨다. - 삽입 시 top을 증가시키고 삭제 시 감소시킨다. 2. 스택의 추상 자료형(ADT) * Object(객체) 0개 이상의 원소를 갖는 유한 순서 리스트 * Functions(연산) stack∈Stack, item∈element, maxStackSize∈positive inte..
1. 배열의 정의 배열(Array) : - 인덱스와 원소값의 쌍()으로 구성된 집합 - 배열의 각 원소들은 자료형과 기억 공간의 크기가 같다. - 메모리의 물리적인 위치를 순서적으로 결정하는 특징이 있다. - 배열의 논리적인 순서(인덱스)는 메모리에 저장되는 원소값의 물리적인 순서(메모리 주소)와 동일하다. - 배열의 첫 번째 원소의 메모리 주소와 인덱스를 통해 특정 원소의 주소값을 계산할 수 있다. - 직접 접근(direct access) : 인덱스를 이용해 접근하므로 - 자료구조의 유형 중 선형 구조에 해당한다. - 각 원소의 이름은 고유한 이름이 없고 원소의 위치에 따라 정해진다. 메모리 영역의 추상화와 구체화(출처: 한국방송통신대학교) 그림의 좌측은 16진수로 표현되는 메모리의 실제 주소, 가운데..