1. 큐(Queue) 란?큐는 한쪽은 데이터가 나오기만 하고 한쪽은 들어가기만 하는 형태의 자료구조이다.대표적인 예시로 놀이공원 줄 서기를 생각하면 된다. 내 앞의 사람들이 입장해야 내가 들어갈 수 있다.이런 줄 서기 구조를 FIFO : First-In-First-Out (먼저 온 사람이 먼저 나감)이라고 한다. 2. 원형 큐연결리스트로도 큐를 구현할 수 있지만 필자는 동적 배열을 사용하여 큐를 구현할 것이다.배열로 큐를 구현하는 방법은 다양하지만 큐를 효율적으로 구현하기 위해 알아야 할 중요 로직이 존재한다.몇 가지 방법을 소개하고 가장 효율적인 방법에 대해 설명하겠다. 방법 1. 큐에 값이 빠져나가도 앞의 공간은 내버려 두고 새로운 값을 추가할 때마다 동적배열을 늘려준다.이 방법은 앞에 안 쓰는 공간..
1. 스택이란?스택(stack)은 영어로 "쌓다"라는 뜻으로 그 의미가 개념과 연관이 깊다.데이터가 아래에서 위로 쌓이는 구조로 데이터가 계속 쌓이면 밑에 있는 데이터는 깔리게 된다.데이터를 꺼내려면 가장 위의 데이터부터 꺼내야 함 이런 구조를 LIFO : Last-In-First-Out (마지막에 들어간 사람이 가장 먼저 나온다)라고 한다.대표적인 예시로 프링글스 통, 엘리베이터가 있다.1. 프링글스를 만들 때는 아래에서부터 하나씩 차곡차고 쌓고 꺼낼 때는 가장 위에 있는 과자부터 먹어야 한다.2. 엘리베이터에 제일 마지막에 탄사람이 가장 먼저 내린다.2. 스택에서의 용어자료구조에서 데이터를 넣거나 뺄 때 사용하는 용어들이 있다.아래에서 해당 용어의 기능을 하는 함수를 구현할 것이다.스택에 데이터를 넣..
문자열 클래스 만들기class 문법에 익숙해지고, 문자열을 더 잘 다루기 위해 문자열 클래스를 직접 만들어보았다.cstring의 문자열, 즉 배열을 사용하여 string class를 만든다.c++에서 #include 을 사용하면 같은 메서드를 사용할 수 있다. 클래스 전체 틀Public에 사용할 함수들을 정의하고Private은문자열을 저장할 배열 str_을 선언문자열 크기를 저장할 size_ 선언#include #include // swap#include class MyString{public: MyString(); // 비어 있는 MyString() 생성 MyString(const char* init); // 맨 뒤에 널 캐릭터'\0'가 들어 있는 문자열로부터 초기화 MyString(con..
교환(Swap)의 원리 파악하기 양손에 있는 과일 2개를 교환하려면 어떻게 해야 할까? 상식적으로 양손에 과일을 쥔 채로는 과일을 교환할 수 없다. 바닥에 하나의 과일을 내려놓고 바꿔 잡으면 된다. 많은 정렬 알고리즘에서 쓰이는 swap의 원리이다. swap 알고리즘을 코드로 어떻게 표현해야 할까? 1. 임시변수 사용 #include using namespace std; int main() { int a = 5; int b = 2; cout