Computer/Data structure 2

[C언어 자료구조] Stack을 이용한 계산기 만들기 (infix, postfix 변환)

컴퓨터는 순서대로 데이터를 읽기 때문에 인간이 사용하는 infix 형태의 수식에서 연산자의 우선순위를 고려한 형태의 수식인 postfix로 변환이 필요하다. infix : 숫자(=피연산자)와 숫자(=피연산자) 사이에 연산자가 위치 ex) 1+1 postfix : 숫자(=피연산자)가 나오고 연산자가 위치 이번 포스팅에는 infix 수식을 postfix 수식으로 변환하는 과정을 통해 Stack 자료구조를 정리해보려고 한다. 메인함수에서는 수식을 입력받고 convert함수를 호출하여 입력받은 infix수식을 전달하여 postfix배열에 받아 계산결과를 출력한다. 스택은 책을 탑처럼 쌓아 올리는 것과 같은 자료구조로 가장 나중에 쌓은 책부터 치울 수 있는 Last In, First Out 의 순서를 가진다. (..

[C언어 자료구조] 선택정렬, 이진탐색 (술자리 게임처럼 간단하게 이해하기)

이진탐색은 리스트에 저장된 내용을 탐색하는 방법 중 하나로 쉽게 설명을 하면 대학교 술자리 게임인 병뚜껑 up/down게임을 생각하면 이해가 쉽다. 맥주병 뚜껑에 쓰여있는 1-50 사이의 숫자를 맞추기 위해서는 25, 12, 6, .. 또는 25, 37, 45, .. 으로 이어가는 것이 가장 합리적이란 것을 알고 있다. ( 술자리에서는 합리성이 사라지지만.. ) 1. 리스트의 시작을 left, 끝을 right으로 지정하여 리스트에 탐색할 정수가 남아 있는지를 체크, (병뚜껑의 숫자가 50임으로 left 1, right 50) 2. 찾는 값과 중간 값(middle)을 비교하며 같은 경우 반환, (찾는 값과 중간값인 25를 비교하여 정답이면 폭탄주) 3. middle 보다 작은 경우 left와 middle-..