반응형

언어 자료구조 알고리즘 1251

[디딤돌 자료구조와 알고리즘] 5.2 연결리스트 - 5.2.1 연결리스트 설계

5.2 연결리스트 연결리스트는 노드의 선형 집합입니다. 노드란 데이터와 링크의 조합으로 하나의 데이터를 보관하는 작은 저장소입니다. 그리고 링크는 노드의 위치 정보입니다. [그림 5.1] 연결리스트 연결리스트는 노드에 링크가 하나만 있는 단일(단순) 연결리스트와 링크가 두 개 있는 이중 연결리스트로 구분할 수 있습니다. 이 책에서는 노드에 이전 노드의 위치 정보를 가르키는 링크와 다음 노드의 위치 정보를 가르키는 링크를 갖고 있는 이중 연결리스트를 만들고 사용하는 방법을 소개할 것입니다. 특히 연결리스트를 생성할 때 연결리스트의 맨 앞과 맨 뒤에 더미 노드를 생성하여 자료를 보관하는 노드들을 이들 사이에 배치할게요. 5.2.1 연결리스트 설계 동적 배열처럼 연결리스트도 동적으로 생성한 개체는 형식에 관계..

[디딤돌 자료구조와 알고리즘] 5.1 배열 - 5.1.3 동적 배열 테스트

5.1.3 동적 배열 테스트 앞에서 만든 동적 배열이 잘 동작하는지 확인하는 시뮬레이션 코드를 작성합시다. 여기에서는 순차적으로 자료를 보관하는 예와 특정 키순으로 보관하는 예, 인덱스를 사용하는 예를 들게요. int main() { Simul_Seq(); Simul_Order(); Simul_Index(); return 0; } 먼저 순차적으로 동적 배열을 사용하는 시뮬레이션 코드를 작성합시다. void Simul_Seq() { 먼저 동적 배열을 생성합니다. Array *arr = New_Array(); 그리고 도서 개체를 생성하여 순차적으로 동적 배열에 보관합니다. Array_PushBack(arr,New_Book("C언어","홍길동",10)); Array_PushBack(arr,New_Book("C..

[디딤돌 자료구조와 알고리즘] 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) 구조입니다. 관련 게시글 [..

[python] 9. 목록의 값을 변경하지 않을 때는 TUPLE을 이용하세요.

[python] 9. 목록의 값을 변경하지 않을 때는 TUPLE을 이용하세요. 안녕하세요. 언제나 휴일, 언휴예요. 이번에는 여러 개의 데이터 목록을 표현하는 TUPLE을 알아보아요. TUPLE은 여러 개의 데이터를 하나의 변수에 기억할 수 있는 형식이예요. 주의할 점은 TUPLE의 요소값을 변경할 수 없다는 것이죠. 만약 여러 개의 데이터를 하나의 변수로 기억하길 원하고 값을 변경하길 원하면 리스트나 사전 등의 다른 자료형을 사용하세요. 이에 관해서는 다음에 강의하기로 할게요. Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:16:59) [MSC v.1900 32 bit (Intel)] on win32 Type "copyright", "credits" or "..

[python] 8. 함수를 만들어 코드를 재사용하기

[python] 8. 함수를 만들어 코드를 재사용하기 안녕하세요. 언제나 휴일, 언휴예요. 이번에는 자주 사용한 코드를 함수로 만들어서 재사용하는 방법을 알아보기로 해요. 함수는 특정 기능을 수행하는 코드의 집합이예요. 자주 사용하는 논리가 있으며 이를 함수로 정의하여 필요할 때 호출하여 사용하는 것이죠. 아무런 인자도 없는 아주 간단한 함수부터 만들어 보기로 해요.Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:16:59) [MSC v.1900 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> def Introduce(): print("안녕하세..

[python] 7. input 함수 사용하여 입력받기

[python] 7. input 함수 사용하여 입력받기 안녕하세요. 언제나 휴일이예요. 앞에서 print 함수를 이용하여 출력하는 방법을 알아보았어요.[python] 3. print 함수 사용하여 출력하기 이번에는 input 함수를 사용하여 입력받는 방법을 알아보아요. Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:16:59) [MSC v.1900 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> print('이름을 입력하세요.') 이름을 입력하세요. >>> name = input() 홍길동 >>> print('나이를 입력하세요.') 나이를 입..

[python] 6. 다양한 방법으로 문자열 표현할 수 있어요.

[python] 6. 다양한 방법으로 문자열 표현할 수 있어요. 안녕하세요. 언휴예요. 앞에서 정수와 실수, 복소수 데이터를 표현하는 방법을 알아보았어요.[python] 4. 정수를 10진수, 8진수, 16진수로 표현할 수 있어요.[python] 5. 파이썬에서는 실수 뿐만 아니라 복소수도 제공해요. 이번에는 다양한 방법으로 문자열을 표현하는 방법을 알아보아요.Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:16:59) [MSC v.1900 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> str1 = 'Hello, ehclub.co.kr' >>..

[python] 5. 파이썬에서는 실수 뿐만 아니라 복소수도 제공해요.

[python] 5. 파이썬에서는 실수 뿐만 아니라 복소수도 제공해요. 안녕하세요. 언휴예요. 앞에서 파이썬에서 정수를 10진수, 8진수, 16진수로 표현하는 방법을 알아보았죠.2016/05/13 - [언어 자료구조 알고리즘/파이썬(Python)] - [python] 4. 정수를 10진수, 8진수, 16진수로 표현할 수 있어요. 이번에는 파이썬에서 실수를 표현하는 방법과 복소수를 표현하는 방법을 알아보기로 해요.Python 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:16:59) [MSC v.1900 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> f=..

반응형