분류 전체보기 56

삽입 정렬 (Insertion Sort)

삽입 정렬이란 자료 구조를 순차적으로 순회하면서 순서에 어긋나는 요소를 찾고, 그 요스를 올바른 위치에 다시 삽입해나가는 정렬 알고리즘입니다.  위는 구조에 대한 예시를 그림으로 설명하는 겁니다. 왼쪽부터 오른쪽 방향으로 데이터를 읽어나가다 수가 작은 값을 왼쪽으로 옮기고 큰 값을 오른쪽으로 옮기는 형태를 취하고 있습니다. #include #include // srand, rand#include // time(NULL)#define MAX_LEN 10// _startIdx 부터 _endIdx 까지를 한 칸씩 이동void LeftMove(int* _pArr, int _startIdx, int _endIdx);void InsertionSort(int* _pArr);void main(){ // 삽입정렬..

선택 정렬(Selection Sort)

선택 정렬이란 배열을 반복적으로 순회하며 가장 작은(또는 큰) 원소를 찾아서 정렬되지 않은 부분의 시작 위치와 교환하는 것입니다.선택 정렬은 배열 전체를 한 번 읽고 거기서 가장 작은(큰) 값을 맨 왼쪽으로 옮기는 형태의 정렬 방식입니다. 배열의 크기 만큼 반복한 결과값을 가져오는 정렬입니다. #include #include #include #define MAX_LEN 5void SelectionSort(int* _pArr);void main(){ // 선택정렬(Selection Sort) // 빅-오 표기법(Big-O Notation) srand(time(NULL)); //srand: 난수 생성 함수 //time(NULL) 현재 시간 int arr[MAX_LEN] = { 0 }; //5 크기의 정..

단일 연결 목록 (Single Linked - List)

단일 연결 목록에 대해 알기 전에 노드라는 개념을 먼저 알아야할 필요가 있습니다.노드란? 데이터 구조에서 데이터와 연결 정보를 포함하는 기본 요소로, 비트와 바이트를 포함할 수 있습니다. 노드는 데이터 저장 및 연결의 역할을 합니다. 우리가 지난 글들에서 자주 다뤘던 비트와 바이트 단위의 데이터와 포인터를 포함하는 구조체를 구현합니다. 연결 리스트, 트리, 그래프 등의 데이터 구조에서 다른 노드와의 관계를 표현합니다.그림으로 설명드리겠습니다.노드는 받아들이는 데이터(Data)와 다음 노드와의 연결 정보(Next)로 구성되어있습니다. 이제 그 노드를 다루는 리스트 중에서 단일 연결 리스트에 대해 알아보겠습니다.위의 그림은 리스트를 표현한 것입니다. 풀어서 정리하겠습니다.리스트 길이: 노드의 개수리스트의 1..

스택 (Stack)

#include #include #include #include #define MAX_LEN 5int g_iarr[MAX_LEN] = { 0 };int g_curIdx = 0;void Push(int _data); //데이터 삽입용int Pop(); //데이터 제거용 (스택에서 데이터를 꺼내는 기능)void PrintAll(); //출력용inline int CheckEmpty() { return g_curIdx == 0; }inline int RandomRange(int _min, int _max){ // 70 ~ 100 return _min + rand() % (_max - _min + 1);}inline int PrintEmptyMessage() { printf("스택이 비어있음!\n"); }void..

자료구조 (ArrayList)

ArrayList는크기를 동적으로 조정할 수 있는 동적 배열의  자료 구조입니다. 프로그램이 실행되는 동안 데이터의 추가 및 삭제가 용이해집니다.#include #include // 1. 동적할당void CreateArray(const int** const _pArr, int _len);// 2. 가변할당void ExtendArray(int** _pDest, int** _pSour, int* _pMaxLen);// 3. 데이터 삽입void PushBack(int** _pArr, int* _pMaxLen, int* _pCurIdx, int _data);// 4. 데이터 제거void RemoveBack(int* _pArr, int* _pCurIdx);// 5. 출력void PrintArray(const in..

카테고리 없음 2024.08.21

상수 열거형 (Enumeration)

#include #define IDLE 7 //디버깅할 때 7이 안나옴enum EAnimation //상수를 만드는 개념{ kIdle = 10, kWalk, kRun, //초기화값에 따라 이후는 ++1씩 출력됨 // 디버깅할 때 초기화값을 읽음. JUMP = 123, FAIL, Attack, Die //이렇게되면 10, 11, 12, 123, 124, 125, 126이 출력됨.};void main(){ // 열거체, 열거형(Enumeration) printf("kIdle: %d\n", kIdle); //kIdle: 10 printf("kWalk: %d\n", kWalk); //kWalk: 11 printf("kRun: %d\n", kRun); //kRun: 12 printf("JUMP: %d..