반응형

선형 자료구조 6

[C언어 자료구조] 1.1 자료구조(Data Structure)

[C언어 자료구조] 1.1 자료구조(Data Structure)자료구조는 자료를 메모리에 표현하는 구조를 말합니다. 자료구조를 분류할 때는 자료를 보관하는 형태에 따라 분류하는데 일반적으로 선형 자료구조와 비 선형 자료구조로 나누죠. 선형 자료구조는 자료를 보관하는 논리적인 구조를 하나의 선으로 나타낼 수 있습니다. 대표적인 선형 자료구조에는 배열과 연결리스트, 스택과 큐가 있습니다. 배열은 같은 형태의 자료를 연속적인 메모리에 관리하는 자료구조입니다. 그리고 연결리스트는 노드의 선형 집합이며 노드는 하나의 자료와 다른 노드의 위치 정보인 링크로 구성합니다. 스택과 큐는 단순히 자료를 보관하고 꺼내는 동작을 제공하며 스택은 최근에 보관한 자료를 꺼내는 LIFO(Last In First Out), 큐는 먼..

[디딤돌 자료구조와 알고리즘] 5.1 배열 - 5.1.2 동적 배열 구현

5.1.2 동적 배열 구현 먼저 동적 배열을 생성하는 함수를 작성합시다. Array *New_Array() { 동적 배열 형식 크기의 메모리를 할당합니다. Array *arr = 0; arr = (Array *)malloc(sizeof(Array)); 자료를 보관할 저장소는 0으로 초기화합니다. 여기서 구현할 동적 배열은 저장소가 꽉 차면 내부적으로 저장소의 크기를 확장해 나갈 것입니다. arr->base = 0; 저장소에 용량과 보관한 자료 개수를 0으로 초기화한 후 동적 배열을 반환합니다. arr->capacity = arr->usage = 0; return arr; } 동적 배열을 소멸하는 함수를 작성합시다. void Delete_Array(Array *arr) { 만약 저장소가 유효하면 저장소를 ..

[디딤돌 자료구조와 알고리즘] 5.1 배열 - 5.1.1 동적 배열 설계

5. 1 배열 C언어에서 제공하는 형식 배열은 원소 개수를 개발 단계에 상수로 결정하여 컴파일 시점에 할당할 메모리 크기를 결정합니다. 하지만 자료구조에서 말하는 배열은 C언어에서 제공하는 배열뿐만 아니라 같은 종류의 자료를 보관하기 위해 동적으로 메모리를 할당하여 관리하는 구조도 포함합니다. 이 책에서는 자료를 보관하는 저장소를 동적으로 할당하는 사용자 정의 배열을 구현하고 배열을 사용하는 방법을 살펴봅시다. 5.1.1 동적 배열 설계 여기에서 작성하는 배열은 동적 배열입니다. 동적 배열이란 자료를 저장하는 메모리를 프로그램 동작 중에 크기를 결정하여 동적으로 할당하는 배열을 말합니다. 즉 보관할 수 있는 원소의 개수를 개발 단계에서 결정하는 것이 아니라 실행 시간에 결정하는 것을 말합니다. 그리고 저..

[디딤돌 자료구조와 알고리즘] 5. 선형 자료구조 - 개요

5. 선형 자료구조 이번 장에서는 선형 자료구조에 관하여 살펴봅시다. 이미 앞 장에서 비선형 자료구조인 이진 탐색 트리는 살펴보았습니다. 선형 자료구조는 자료를 보관하는 논리적인 구조를 하나의 선으로 나타낼 수 있습니다. 대표적인 선형 자료구조에는 배열과 연결리스트, 스택과 큐가 있습니다. 배열은 같은 형태의 자료를 연속적인 메모리에 관리하는 자료구조입니다. 그리고 연결리스트는 노드의 선형 집합이며 노드는 하나의 자료와 다른 노드의 위치 정보인 링크로 구성합니다. 스택과 큐는 단순히 자료를 보관하고 꺼내는 동작을 제공하며 스택은 최근에 보관한 자료를 꺼내는 LIFO(Last In First Out), 큐는 먼저 보관한 자료를 꺼내는 FIFO(First In First Out) 구조입니다. 관련 게시글 [..

[데이터베이스] 자료구조

자료구조 자료구조 자료를 보관하는 구조로 자료의 표현뿐만 아니라 관련 연산을 포함한 개념 자료구조의 종류 선형 자료구조: 하나의 선의 형태로 자료를 보관한 구조를 표현할 수 있음 비선형 자료구조: 하나의 선의 형태로 자료를 보관한 구조를 표현할 수 없음 선형 자료구조의 종류 배열 : 연속적인 프로그램 메모리에 데이터를 관리, 순차적 선형 자료구조 스택: 가장 최근에 보관한 것을 먼저 꺼내는 LIFO(Last In First Out) 방식의 버퍼 큐 :가장 먼저 보관한 것을 먼저 꺼내는 FIFO(First In First Out)방식의 버퍼 데크: 맨 앞이나 뒤로 자료를 저장하거나 꺼낼 수 있는 버퍼 리스트: 노드들의 선형 집합, 노드는 데이터와 링크의 조합, 링크는 다른 노드의 위치 정보 *연결 리스트는..

3. 선형 자료구조 [디딤돌 자료구조와 알고리즘 with C++]

3. 선형 자료구조 자료를 선형으로 보관하는 자료 구조에는 배열, 연결리스트, 스택, 큐, 덱 등이 있어요. 이와 같은 자료구조에 자료를 보관하거나 삭제, 검색 등의 연산을 수행할 때 반복적인 방법으로 해결할 때가 많아요. 배열은 자료를 연속적인 메모리에 보관하는 자료구조예요. 순차리스트라고도 부르죠. 연결리스트는 하나의 자료를 보관하는 노드들을 선형으로 그릴 수 있어요. 실제 메모리는 순차적이지 않지만 논리적으로 선형으로 나타낼 수 있어요. 연결리스트를 구성하는 노드는 하나의 데이터와 링크의 조합이예요. 링크는 노드의 위치 정보로 노드에 하나의 링크가 있으면 단순 혹은 단일 연결리스트라 부르고 두 개 있으면 이중 연결리스트라 불라요. 특히 배열은 프로그래밍 언어에서 제공하는 형식 배열만 있는 것이 아니..

반응형