중위수식으로 표현된 연산을 후위수식 표기법으로 변경하고 계산해주는 예제 코드 입니다. 전위수식, 중위수식, 후위수식에 대한 설명과 변환 방법등은 아래 게시글을 참고하세요. https://injunech.tistory.com/412 [Stack] 전위수식(prefix), 후위수식(postfix), 중위수식(infix) [Stack] 전위수식(prefix), 후위수식(postfix), 중위수식(infix) 중위수식(Infix) 중위수식은 일반적으로 우리가 수식을 사용할 때 피연산자 사이에 연산자를 표기하는 방식 Ex) 1+3*2+4/2 피연산자(숫자) 사이 injunech.tistory.com 후위수식 변환 및 계산 예제 코드 #include #include #include #define MAX_STACK_..
[Stack] 전위수식(prefix), 후위수식(postfix), 중위수식(infix) 중위수식(Infix) 중위수식은 일반적으로 우리가 수식을 사용할 때 피연산자 사이에 연산자를 표기하는 방식 Ex) 1+3*2+4/2 피연산자(숫자) 사이에 연산자(덧셈, 곱셈, 뺄셈, 나눗셈)가 있는 식을 중위수식(Infix) 이라고 합니다. 하지만 컴퓨터는 직관적으로 연산자의 우선순위에 따라 연산을 수행할 수 없으므로 연산자 우선순위에 따라 계산해주기 위해 Stack 자료구조를 사용하여 prefix, postfix 와 같은 수식으로 변경하여 계산을 해줘야 합니다. 전위수식(Prefix) 전위수식은 연산자가 피연산자 앞에 나오는 방식으로 5+8는 +58라고 표현하는 것입니다. Ex) 1+2*3+1+2/2 => ((1+..
간단한 큐(Queue)의 구현 순환 큐가 가장 좋은 것으로 알고 있지만 빠른 알고리즘의 구현을 할 경우에는 전체 큐의 범위를 넉넉하게 잡고 아래와 같은 방식으로 구현하였다.큐는 BFS 알고리즘을 쓸때 주로 이용된다. 여기서 사용된 Front 와 Rear 의 용도는 다음과 같다. 값의 존재 기준으로 보면Front 는 값이 존재하는 제일 앞에서 index 값이 -1 만큼인 값Rear 는 값이 존재하는 제일 마지막에서 index 값이 +1 만큼인 값 값을 넣어야 하는 기준으로 보면값을 꺼낼 때 Front 의 현재 index 에서 +1의 위치 값을 꺼내온다.값을 넣을 때 Rear 의 index 위치에 값을 넣는다. Queue에 Push 할때는 Rear 가 가리키는 Index 에 넣고 Rear 의 값을 +1 한다..
Quick Sort(퀵정렬) 알고리즘 연속적인 분할에 의한 정렬. 처음 하나의 축을 정해서 이 축의 값보다 작은 값은 왼쪽에큰 값은 오른쪽으로 위치시킨다. 왼쪽과 오른쪽의 수 들은 다시 각각의 축으로 나누어져축값이 1이 될 때까지 정렬한다 특징 안정성 없음 O(NlogN) : 최선의 경우 log2N (축값이 정확히 가운데를 가질 경우)O(N^2) : 최악의 경우 가장 많이 사용되는 정렬법으로 1960년 C.A.R. Hoare에 의해 고안되었다. Code(코드) 재귀함수를 사용한다. #include #include #include #define SIZE 20 #define SWAP(x,y,t) ( (t)=(x), (x)=(y), (y)=(t) ) void QuickSort(int left, int righ..