
총 80개
-
그래프의 종류 중 무방향 그래프, 방향 그래프, 완전 그래프, 가중 그래프에 대해 설명하시오2025.01.171. 무방향 그래프 무방향 그래프는 정점 간에 방향성이 없는 그래프입니다. 두 정점의 연결선에 순서가 없으며, 각 간선은 양방향으로 이루어질 수 있습니다. 이는 일반적으로 그래프를 지칭할 때 사용되는 형태입니다. 2. 방향 그래프 방향 그래프는 정점 간에 방향성이 있는 그래프입니다. 두 정점 연결선에 순서가 있으며, 각 간선은 단방향으로만 이루어집니다. 이는 정점 간 함수적 관계성 등을 표현하는 데 편리합니다. 3. 완전 그래프 완전 그래프는 모든 정점끼리 연결된 그래프를 말합니다. 두 정점 간 최소 1 이상의 경로가 반드시 있는,...2025.01.17
-
데이터의 자료구조 중에서 스택과 큐를 비교하여 설명하고, 두 구조를 구현해 보시오2025.01.221. 스택 자료구조의 개념과 특성 스택은 선형 자료구조 중 하나로, 데이터를 후입선출(LIFO, Last In First Out) 방식으로 저장하고 관리한다. 데이터는 한쪽 끝에서만 삽입되고 삭제되며, 마지막에 삽입된 데이터가 가장 먼저 제거된다. 스택은 메모리 호출 관리, 문자열 역순 출력, 수식 계산 등에 널리 사용된다. 2. 큐 자료구조의 개념과 특성 큐는 선형 자료구조 중 하나로, 데이터를 선입선출(FIFO, First In First Out) 방식으로 저장하고 관리한다. 데이터는 한쪽 끝에서 삽입되고 반대쪽 끝에서 제거된다...2025.01.22
-
스택과 큐(선형큐, 원형큐)의 개념 및 연산 방법2025.01.241. 스택(Stack) 스택은 후입선출(LIFO) 방식으로 데이터를 관리하는 자료구조입니다. 스택의 기본 연산은 푸시(push)와 팝(pop)이며, 탑(top) 포인터를 사용하여 데이터의 삽입과 삭제가 이루어집니다. 스택은 메모리 관리, 함수 호출 관리, 표현식 평가 등 다양한 분야에서 활용됩니다. 2. 큐(Queue) 큐는 선입선출(FIFO) 방식으로 데이터를 관리하는 자료구조입니다. 큐의 기본 연산은 인큐(enqueue)와 디큐(dequeue)이며, 앞(front)과 뒤(rear) 두 개의 포인터를 사용하여 데이터의 삽입과 삭제...2025.01.24
-
수식을 표현하는 3가지 방법 중에서 후위 표현식으로 표현하는 이유2025.01.031. 자료구조 자료구조는 데이터를 저장하고 관리하는데, 메모리의 용량을 절약시켜줘서 효율적으로 사용하게 하고 정해진 규칙에 따라 실행하게 되어 시간을 단축할 수 있다. 특히, 복잡한 자료를 규칙을 이용하여 핵심적인 부분만 간단하게 표현하는 추상화 작업을 거치면서 설계하면 훨씬 단순하게 표현할 수 있고 다양한 프로그램에서 동작을 할 수 있도록 설계하기 때문에 재사용이 가능하다. 2. 수식 표현 방법 자료구조에서 수식을 표현한다는 것은 이항 연산을 표현하는 것으로써, 연산자와 피연산자의 위치를 3가지 수식 표현 식으로 나타내는 것을 의...2025.01.03
-
c언어로 쉽게 풀어쓴 자료구조 개정 3판 6장(연결리스트) 연습문제 (해설 포함)2025.05.161. 원형 연결 리스트 원형 연결 리스트는 마지막 노드의 포인터가 첫 번째 노드를 가리킨다. 2. 배열 n번째 요소를 찾는다는 것은 특정한 값을 탐색한다는 것이 아니다. 즉 특정 요소로 접근하겠다는 의미인데, 이를 가장 빠르게 할 수 있는 것은 당연히 배열이다. 배열은 인덱스를 통해 특정 요소로 가장 빠르게 접근할 수 있는 자료구조다. 한 번에 접근이 가능하므로 당연히 시간복잡도는 O(1)이다. 3. 단순 연결리스트 단순 연결리스트의 마지막 노드의 링크(link) 필드는 항상 NULL을 가리킨다. 따라서 last->link==NUL...2025.05.16
-
자료구조 희소행렬 소스코드 구현2025.05.051. 희소행렬 희소행렬은 대부분의 원소가 0인 행렬을 효율적으로 표현하는 방법입니다. 이 코드는 희소행렬의 덧셈 연산을 구현하고 있습니다. 행렬의 크기가 같은지 확인하고, 각 행렬의 데이터를 순차적으로 읽어 결과 행렬을 생성합니다. 이를 통해 메모리를 절약할 수 있습니다. 1. 희소행렬 희소행렬은 대부분의 원소가 0인 행렬을 말합니다. 이러한 희소행렬은 많은 분야에서 활용되는데, 특히 기계학습, 데이터 압축, 그래프 이론 등에서 중요한 역할을 합니다. 희소행렬을 효율적으로 저장하고 처리하는 방법은 이러한 분야에서 핵심적인 기술이 됩...2025.05.05
-
최대 힙과 최소 힙의 정의 / 힙의 삽입, 삭제 연산 방법 / 힙을 응용한 허프만 코드의 특징과 생성 방법2025.05.021. 최대 힙과 최소 힙의 정의 힙(heap)이란 피라미드 모양으로 차곡차곡 쌓아 올린 더미 모양을 말한다. 자료구조에서의 힙은 우선순위 큐를 구현하는 자료구조이며 빠르게 가장 크거나 작은 데이터를 찾을 수 있도록 만들어진 자료구조라고 정의할 수 있을 것이다. 최대 힙(Maxheap)이란 부모 노드의 key 값이 자식의 key 값보다 크거나 같은 완전 이진 트리 형식이다. 즉, 루트 노드에 저장된 값이 트리 전체에서 가장 큰 값이 된다. 반대로 최소 힙(Minheap)은 부모 노드의 key 값이 자식의 key 값보다 작거나 같은 완...2025.05.02
-
사용자가 입력한 수를 계속 더하는 프로그램을 배열과 연결리스트로 각각 구현했을 때 장단점 비교 및 설명2025.01.191. 배열을 사용한 프로그램 구현 배열을 사용한 프로그램은 고정된 크기의 메모리 블록에 데이터를 저장한다. 배열은 정적 메모리 할당을 통해 메모리를 관리하며, 인덱스를 통해 각 요소에 빠르게 접근할 수 있다. 이로 인해 특정 위치의 값을 읽거나 쓰는 작업이 매우 효율적이다. 그러나 배열의 크기를 동적으로 조절할 수 없다는 단점이 있다. 2. 연결리스트를 사용한 프로그램 구현 연결리스트를 사용한 프로그램은 동적으로 메모리를 할당하여 데이터를 저장한다. 연결리스트는 각 노드가 데이터와 다음 노드를 가리키는 포인터를 포함하고 있어, 새로...2025.01.19
-
c언어로 쉽게 풀어쓴 자료구조 개정 3판 3장 연습문제 (해설 포함)2025.05.141. 2차원 배열의 메모리 크기 2차원 배열이 메모리에서 차지하는 크기는 행의 개수와 열의 개수, 그리고 각 요소의 크기를 곱하여 계산할 수 있다. 문제에서 제시된 10행 20열의 int형 2차원 배열은 10 x 20 x 4 = 800바이트의 크기를 차지한다. 2. 배열의 시작 주소 배열의 시작 주소는 배열의 첫 번째 요소가 저장되는 공간의 주소이다. 문제에서 배열의 첫 번째 요소가 1000번지에 저장된다고 했으므로, 10번째 요소는 1000 + (4 x 10) = 1040번지에 저장된다. 3. 배열의 크기 비교 배열의 크기는 각 ...2025.05.14
-
c언어로 쉽게 풀어쓴 자료구조 개정 3판 4장 연습문제 (해설 포함)2025.05.141. 스택 스택은 후입선출 (Last In First Out, LIFO) 구조를 가지며, 데이터를 삽입하는 push 연산과 삭제하는 pop 연산을 수행할 수 있다. 스택의 top은 일반적으로 -1로 초기화되며, 요소를 삽입할 때마다 top이 1씩 증가한다. 스택이 공백 상태일 때 top은 -1이 되고, 포화 상태일 때 top은 MAX_STACK_SIZE-1이 된다. 스택에서 데이터를 삽입하고 삭제하는 연산의 시간복잡도는 O(1)이다. 후위 표기법에서는 피연산자를 만나면 스택에 삽입하고, 연산자를 만나면 스택에서 2개의 피연산자를 꺼...2025.05.14