2024년 11월 15일 금요일
2024년 11월 7일 목요일
이진 트리의 특징 및 이진 탐색 트리(Binary Search Tree) 설명
kjs
11월 07, 2024
이진 트리 (Binary Tree) 정의 이진 트리는 각 노드가 최대 두 개의 자식 노드를 가질 수 있는 계층적 자료 구조입니다. 이 트리는 노드의 수가 많아지면 구조가 복잡해지지만, 자식 노드가 두 개 이하로 제한되기 때문에 탐색과 관련된 알고...
트리의 개념과 다양한 트리의 종류 소개
kjs
11월 07, 2024
트리는 계층적 구조를 가진 비선형 자료구조로, 데이터가 부모-자식 관계로 연결된 노드들로 구성됩니다. 트리는 루트 노드에서 시작하여 여러 자식 노드로 확장될 수 있으며, 모든 노드는 단 하나의 부모 노드만을 가질 수 있습니다. 트리는 그래프의 한 종...
스택과 큐의 정의와 차이점 설명
kjs
11월 07, 2024
스택(Stack) 스택은 LIFO (Last In, First Out) 구조를 따르는 자료 구조로, 마지막에 삽입된 데이터가 가장 먼저 삭제됩니다. 흔히 사용되는 예시로는 브라우저 히스토리 , 재귀 호출 스택 등이 있습니다.
삽입, 삭제 연산에 대한 시간 복잡도 비교
kjs
11월 07, 2024
배열에서의 삽입과 삭제 배열은 연속된 메모리 위치에 고정 크기로 요소를 저장하는 자료 구조입니다. 중간 위치에서 요소를 삽입하거나 삭제할 때 모든 요소를 이동해야 하므로, 시간 복잡도는 O ( n ) O(n) O ( n ) 입니다.
배열과 연결 리스트의 차이점, 각각의 장단점 설명
kjs
11월 07, 2024
배열과 연결 리스트는 데이터를 저장하는 기본적인 자료 구조입니다. 각 구조는 데이터의 접근 방식과 메모리 관리에 있어 고유한 특징을 지니고 있습니다. 이 두 자료 구조의 차이점을 이해하면 다양한 프로그래밍 상황에서 더 적합한 구조를 선택할 수 있습니다.
스택과 큐의 활용 사례 (예: 브라우저 히스토리, 프린터 작업 대기열)
kjs
11월 07, 2024
스택과 큐는 컴퓨터 과학에서 중요한 데이터 구조로, 데이터를 효율적으로 관리하고 처리할 때 자주 사용됩니다. 이 두 구조는 각각 다른 방식으로 데이터를 처리하며, 다양한 상황에서 매우 유용하게 활용됩니다. 스택은 "후입선출(LIFO)"...
2024년 8월 3일 토요일
자료구조 14강 그래프의 구현과 탐색 알고리즘 소스 코드
kjs
8월 03, 2024
그래프 수학자 오일러(Euler)에 의해 1736년 고안됨. 버스와 지하철의 노선도, 출발지와 목적지에 맞는 최적의 경로 등에 사용. 정점(vertex)과 정점 사이를 연결하는 간선(edge)으로 구성.
2024년 8월 2일 금요일
자료구조 13강 해쉬 테이블의 정리와 소스코드
kjs
8월 02, 2024
테이블(Table) 탐색 연산은 O(1)의 시간 복잡도이므로, 단번에 탐색을 수행한다고 표현이 가능하다. 저장되는 데이터는 키(key)와 값(value)이 하나의 쌍을 이룬다. '값'은 반드시 '키'가 존재해야 하며,...
2024년 7월 29일 월요일
자료구조 12강 AVL 트리의 소스 코드
kjs
7월 29, 2024
이진 탐색 트리 문제점 이진 탐색 트리의 탐색 연산은 O(log₂n)의 시간 복잡도 - 트리의 높이를 하나씩 더해갈수록 추가할 수 있는 노드도 두 배씩 증가. 저장 순서에 따라 탐색의 성능에 큰 차이를 보이는 것이 이진 탐색 트리의 단점. 이러한...
2024년 7월 27일 토요일
자료구조 11강 탐색의 이해와 보간 탐색 정리
kjs
7월 27, 2024
탐색의 이해 탐색은 알고리즘보다 자료구조에 더 가까운 주제 효율적인 탐색을 위해서는 어떻게 찾을까 만을 고민하기보다는 효율적인 탐색을 위한 저장방법이 무엇일까가 더 우선적인 고민이기 때문. 효율적인 탐색이 가능한 대표적인 저장방법은 트리이고 때문에 탐...
2024년 7월 25일 목요일
자료구조 10강 정렬의 종류와 소스코드 정리
kjs
7월 25, 2024
버블 정렬(Bubble Sort) 인접한 두 개의 데이터를 비교해가면서 정렬을 진행하는 방식 정렬순서상 위치가 바뀌어야 하면 두 데이터의 위치를 바꿔나간다. 오름차순으로 정렬할 경우엔 정렬의 우선순위가 가장 낮은, 제일 큰 값을 맨 뒤로 보낸다.
자료구조 9강 우선순위 큐의 이해와 소스 코드
kjs
7월 25, 2024
우선순위 큐 큐는 먼저 들어간 데이터가 먼저 나오나, 우선순위 큐는 들어간 순서에 상관없이 우선순위가 높은 데이터가 먼저 나온다. 응급실로 비유하면 촌각을 다투며, 생명이 위급한 환자 또는 내일까지 기다리기에는 무리인 환자가 해당됨. 우선순위 정...
2024년 7월 24일 수요일
자료구조 8강 트리의 개요, 소스 코드
kjs
7월 24, 2024
트리(Tree) 고급 자료구조로 분류되는 트리는 계층적 관계(Hierarchical Relationship)를 표현하는 자료구조. 비선형 자료구조이기도 하다. 가지를 늘려가며 뻗어간다는 모양새에 근거하여 '트리'라 명명.
2024년 7월 23일 화요일
자료구조 7장 큐와 덱의 이해, 소스 코드
kjs
7월 23, 2024
큐는 스택과 함께 언급되고 비교되는 자료구조. 스택은 먼저 들어간 데이터가 나중에 나오는 구조인 반면, 큐는 먼저 들어간 데이터가 먼저 나오는 구조.
자료구조 6장 스택의 이해와 ADT 정리, 소스 코드
kjs
7월 23, 2024
스택(Stack) 나중에 들어간 것이 먼저 나오는 구조. 후입선출 방식의 구조, 영어로는 LIFO(Last-In, First-Out) 구조라 불린다. 스택을 대표하는 넣고, 꺼내고, 들여다 보는 연산을 push, pop, peek이라 한다. 스택을 ...
자료구조 5강 원형 연결리스트의 이해와 소스 코드
kjs
7월 23, 2024
단순 연결리스트를 꼭 처음부터 끝까지 스스로 구현할 수 있지 않아도 되며, ADT의 변경 및 추가로 함수의 일부를 변경하거나 추가하는 정도를 할 수 있다면 충분히 공부했다고 말할 수 있다.
2024년 7월 3일 수요일
2024년 7월 2일 화요일
자료구조 2강 재귀함수의 예제 소스 코드
kjs
7월 02, 2024
재귀함수의 기본적인 형태의 코드 void Recursive ( void ) { printf ( "Recursive call! \n" ); Recursive(); }