목록Computer Science/Data Structure (3)
DevOps:leehi9817
동적 메모리 할당 (Dynamic Memory Management) 프로그램이 사용하는 메모리 공간은 명령어 코드, 변수들을 위한 정적 메모리 공간과 실행 중에 사용되는 동적 메모리 공간으로 이루어진다. 동적 메모리 공간은 힙 메모리 (Heap Memory) 라고도 부른다. 힙 메모리를 사용하기 위해서는 사용자가 직접 메모리 할당을 요청하거나 할당 공간을 해제해야 하며 이러한 작업을 동적 메모리 관리 (Dynamic Memory Allocation : DMA) 라고 한다. 동적 메모리 관리를 위해서는 malloc과 free 전용 함수를 사용한다. malloc 함수는 바이트 단위로 요청된 힙 메모리 공간을 할당해 주고 그 주소를 반환한다. 할당된 공간은 이 공간의 주소를 가지고 있는 포인터를 통해서 참조할..
연결 리스트 (Linked List) 리스트는 동일한 자료형으로 된 원소들의 모임으로 선형 리스트 (Linear List)와 연결 리스트 (Linked List)로 나뉜다. 선형 리스트는 배열로 구현되는 순서 리스트로 원소들이 메모리에 연속적으로 저장되고 인덱스를 통하여 접근한다. 반면, 연결 리스트의 원소들은 프로그램 실행 중에 동적으로 생성되거나 삭제되므로 리스트의 크기를 미리 예측할 필요가 없다. 연결 리스트의 원소들은 링크를 통해 서로 연결되어 있기 때문에 논리적으로는 선형적이지만 물리적으로는 분산되어 있다. 연결 리스트는 사용자가 직접 연결 리스트의 노드를 실행 중에 관리해 주어야 하고 이것을 동적 메모리 관리(Dtnamic Memory Management) 라고 한다. 연결 리스트의 원소는 노..
중위 표기법 (Infix) - 연산자가 피연산자 사이에 온다. - 각 연산자별로 우선 순위가 있으며, 괄호를 사용하여 우선 순위를 바꿀 수 있다. - 사람이 이해하기는 쉬우나 연산 순서가 복잡하여 프로그래밍이 어렵다. 후위 표기법 (Postfix) - 연산자가 피연산자 맨 뒤에 온다. - 연산자의 우선 순위가 없고 괄호를 사용하지 않는다. - 왼쪽에서 오른쪽 방향으로 계산하므로 프로그래밍이 쉽다. ex) 5 + 9 * 7 (Infix) >> 5 9 7 * + (Postfix) 후위 수식 (Postfix) 계산 알고리즘 1. 수식을 왼쪽에서 오른쪽으로 스캔한다. 2. 수식에서 들어온 입력이 피연산자이면 스택에 넣는다. 3. 입력이 연산자이면 스택에서 피연산자 2개를 꺼내서 계산한 후 결과 값을 다시 스택에..