총 82개
-
순차 자료구조와 연결 자료구조의 비교 및 구현2025.11.161. 순차 자료구조 순차 자료구조는 데이터를 메모리상의 연속적인 위치에 저장하는 구조로, 배열 형태로 저장되며 각 데이터 요소는 고유한 인덱스를 통해 식별됩니다. 인덱스를 통한 직접 접근(무작위 접근)이 가능하여 데이터 접근 속도가 빠르고, 메모리 단편화를 최소화할 수 있습니다. 하지만 중간에 데이터를 삽입하거나 삭제할 때 나머지 데이터를 이동시켜야 하므로 비효율적입니다. 데이터 크기가 고정되어 있거나 변경이 거의 없는 상황에서 효과적이며, 빠른 접근이 필요한 경우에 적합합니다. 2. 연결 자료구조 연결 자료구조는 데이터 요소가 메...2025.11.16
-
운영체제 ) 메모리 단편화가 무엇이고 왜 발생하는지 설명하고, 내부, 외부 단편화의 의미를 조사하시오. 그리고 내부, 외부 단편화를 해결할 수 있는 방법에 대해 논하시오.2025.01.191. 메모리 단편화 메모리 단편화는 RAM에서 메모리 공간이 작은 조각으로 나뉘어 메모리 자체에는 사용할 수 있는 공간이 충분히 존재하고 있지만 할당할 수 없는 상태를 의미한다. 이와 같은 메모리 단편화는 내부 단편화(Internal Fragmentation)와 외부 단편화(External Fragmentation)로 구분할 수 있다. 2. 내부 단편화 메모리를 할달할 때 OS에서 할당된 메모리의 공간보다 프로세스가 더 작은 공간을 사용함에 따라 낭비된 상태를 내부 단편화라 이야기 한다. 예를 들면 20MB의 메모리 크기가 주어져을...2025.01.19
-
운영체제의 실제 메모리 구성 및 물리적 메모리 관리2025.01.271. 메모리 관리 개요 운영체제의 핵심 역할 중 하나는 시스템의 메모리를 효율적으로 관리하는 것입니다. 메모리는 컴퓨터에서 가장 중요한 자원 중 하나로, 이를 효과적으로 관리하지 못하면 성능 저하뿐만 아니라 여러 가지 문제가 발생할 수 있습니다. 이를 방지하기 위해 운영체제는 다양한 메모리 관리 기법을 활용하여 자원을 최적화하고 있습니다. 2. 실제 메모리의 구성 방식 컴퓨터 시스템에서 메모리는 주로 RAM(Random Access Memory)을 활용하며, 이는 CPU가 빠르게 접근할 수 있는 저장 공간으로 작동합니다. 실제 메모...2025.01.27
-
연결형 자료구조를 이용한 다항식의 계산 프로그래밍2025.01.131. 다항식 계산 프로그래밍 이 프로그래밍 과제에서는 연결형 자료구조를 이용하여 다항식의 계산을 구현하였습니다. 다항식의 항을 표현하는 구조체를 정의하고, 다항식을 입력받아 연결 리스트로 구성하는 함수, 두 다항식을 더하는 함수, 두 다항식을 곱하는 함수 등을 구현하였습니다. 이를 통해 연결 리스트, 포인터 연산, 알고리즘 설계의 중요성을 배웠고, 프로그래밍 경험을 쌓을 수 있었습니다. 2. 연결 리스트 이 프로그래밍 과제에서는 다항식을 연결 리스트로 표현하였습니다. 연결 리스트는 동적 메모리 할당을 통해 구현되며, 각 항목은 다음...2025.01.13
-
배열의 정의, 선언, 초기화 및 활용2025.05.051. 배열의 정의 배열은 C언어에서 연속적인 메모리 영역에 동일한 데이터 타입의 여러 요소를 저장할 수 있는 구조입니다. 배열을 사용하면 데이터를 더욱 구조화된 방식으로 저장하고 접근할 수 있습니다. 2. 1차원 배열 선언 1차원 배열을 선언하려면 데이터 타입, 배열 이름, 배열 크기를 지정해야 합니다. 예를 들어, int arr[5]는 크기가 5인 int형 1차원 배열을 선언하는 것입니다. 3. 배열 활용 사례 배열은 시계열 데이터 저장, 문자열 처리, 정렬 및 검색 알고리즘 구현, 행렬 및 벡터 연산 등 다양한 상황에서 활용됩니...2025.05.05
-
방통대 방송대 C++프로그래밍 출석수업과제물 A+2025.01.251. C++ 프로그래밍 이 프레젠테이션은 C++ 프로그래밍 과제물에 대한 내용을 다루고 있습니다. 여기에는 C++ 기초 프로그래밍 예제, 배열 최댓값 구하기, 포인터 사용, 동적 메모리 할당, 참조 활용, 함수 활용 등 다양한 C++ 프로그래밍 기법이 소개되어 있습니다. 2. 객체 지향 프로그래밍 이 프레젠테이션에는 C++ 클래스 사용 예제가 포함되어 있습니다. 'CppBeginner' 클래스를 정의하고 'hello()' 메서드를 구현하는 등 객체 지향 프로그래밍 기법이 활용되고 있습니다. 3. 배열 및 데이터 구조 프레젠테이션에는...2025.01.25
-
자료구조 실습 코드: 희소행렬, 다항식, 연결리스트, 스택2025.11.141. 희소 행렬(Sparse Matrix) 희소 행렬은 대부분의 원소가 0인 행렬을 효율적으로 표현하기 위한 자료구조입니다. 제시된 코드에서는 term 구조체를 사용하여 0이 아닌 원소만 저장합니다. smTranspose 함수는 행렬을 전치하고, smPrint 함수는 행렬을 출력하며, smAdd 함수는 두 희소 행렬을 더합니다. 각 원소는 행(row), 열(col), 값(value)으로 구성되어 메모리를 절약합니다. 2. 다항식 표현 및 연산 다항식은 배열 또는 연결리스트로 표현할 수 있습니다. 배열 기반 구현에서는 polynomi...2025.11.14
-
단편화의 의미와 극복 방법, 내부 단편화와 외부 단편화의 차이, 배치 전략 조사2025.01.181. 단편화의 의미와 극복 방법 컴퓨터 과학에서 단편화는 메모리나 스토리지의 큰 블록이 더 작고 연속적이지 않은 블록으로 분할된 상태를 의미합니다. 이러한 단편화는 내부 단편화와 외부 단편화로 구분됩니다. 내부 단편화는 프로세스에 메모리 블록이 할당될 때 발생하며, 외부 단편화는 전체적으로 사용 가능한 메모리 공간이 충분함에도 불구하고 인접 공간이 충분하지 않은 현상입니다. 단편화를 방지하기 위해서는 메모리 관리 기술 사용, 버디 메모리 할당 등의 방법을 고려할 수 있습니다. 2. 내부 단편화와 외부 단편화의 차이 내부 단편화는 프...2025.01.18
-
포인터를 사용한 2D 배열 덧셈2025.11.131. C언어 포인터 C언어에서 포인터는 메모리 주소를 저장하는 변수입니다. 포인터를 사용하면 배열의 요소에 직접 접근할 수 있으며, 동적 메모리 할당과 함수 인자 전달 등에 활용됩니다. 이 예제에서는 2D 배열의 첫 번째 요소 주소를 포인터에 저장하여 배열 요소에 접근합니다. 2. 2D 배열 연산 2D 배열은 행과 열로 구성된 2차원 데이터 구조입니다. 이 예제에서는 3x3 크기의 두 배열 a와 b의 대응하는 요소들을 더하여 새로운 배열 c를 생성합니다. 포인터를 통해 각 배열의 요소에 순차적으로 접근하여 덧셈 연산을 수행합니다. ...2025.11.13
-
C언어에서 메모리를 효율적으로 활용하기 위한 포인터의 활용2025.05.061. 포인터 정의 포인터는 변수의 주소를 나타내는 변수이다. 변수는 메모리 상의 어떤 위치에 할당되며, 이 위치를 주소(address)라고 한다. 포인터는 이러한 변수의 주소를 저장하고, 이 주소를 통해 변수에 접근할 수 있다. 포인터를 선언할 때는 포인터 변수의 자료형을 지정해야 하며, 포인터 변수의 자료형은 포인터가 가리키는 변수의 자료형과 일치해야 한다. 2. 포인터 변수 정의와 예제 포인터 변수는 메모리의 주소를 저장하는 변수이다. 포인터 변수를 사용하면 변수의 값을 직접 변경하거나, 함수의 인자로 포인터를 사용하여 함수 외...2025.05.06
