후위표기식은 수식을 표현하는 한 방법이다. 일반적으로 우리가 쓰는 표기식은 중위표기식, 즉 이항연산자를 두 개의 피연산자 가운데 쓰는 방법인데, 이것은 사람이 보기에 편리하지만 컴퓨터가 수식을 계산하기에는 매우 불편한 형태다. 그 이유는 우리가 수식을 계산할 때 사용하는 순서를 보면 알 수 있다. 7 + 3 * (5 - 2) + 4 이러한 수식을 계산하기 위해서 우리는 우선순위를 고려해야 한다. 즉 +보다 *가 우선순위가 높고 괄호는 가장 먼저 해야 한다. 그러므로 5-2가 먼저 계산된 후 3*3을 계산하고 그 다음에 7+9를 계산해야 한다. 이 때 수식을 왼쪽부터 차례로 읽어가면서 이러한 순서를 판단하여 계산하려면 매우 복잡한 코드가 필요하다. 이 문제를 해결하기 위해 조상 프로그래머들이 발견한 방법이..
스택 자료구조의 선언부를 먼저 살펴보자. 스택의 구조체 정의는 다음과 같다. #define MAX_STACK_SIZE 100// 스택의 최대 크기 typedef int elem_t; elem_t get_next(); char* str(elem_t e); void free_elem(elem_t e); typedef struct { elem_t data[MAX_STACK_SIZE]; int top; } stack_t; 여기서 중요한 점은 elem_t라는 타입 이름이다. 이것을 이용하므로써 요소 타입이 무엇이든 상관없이 스택 구조체와 함수들을 이용할 수 있게 된다. 예를 들어 maze를 이용하는 경우라면 벽인지, 길인지를 나타내는 문자를 스택에 넣을 요소로 사용할 수 있다. 그 경우는 typedef char ..
이번 학기 자료구조를 맡게 되어 C 언어로 자료구조를 구현하는 것을 연재해 볼까 합니다. 30년 전에 공부한 자료구조를 새로 펼쳐보니 새롭기도 하고 제대로 구현해 보는 게 C 공부에 도움이 많이 될 것 같아서 연재를 시작하게 되었습니다. 자료구조 기본 코드는 생능출판사의 C 언어로 쉽게 풀어쓴 자료구조 책과 그외 인터넷에서 참고하였습니다. 기본 코드에서 코딩스타일이나 출력 방식 등은 제가 수정하여 사용했습니다. 그리고 대부분의 자료들이 각 자료구조의 ADT에 대해 기능별 알고리듬 위주로 설명되어 있으나 저는 직접 돌려보면서 사용할 수 있도록 입력과 출력을 위한 기능을 추가해 보았습니다. 그리고 추가, 삭제 같은 것을 지원할 수 있게 만들어보려고 합니다. 자료구조 한 학기 수업으로는 사실 자료구조에 대해 ..
- Total
- Today
- Yesterday
- Lazy evaluation
- typedef
- python exercise
- Iterator
- 이터러블
- TypeError
- comparable
- 이터레이터
- max
- zip
- 패턴
- format
- contentEquals
- sort key
- 동적바인딩
- APPEND
- 콜렉션
- C++ 클래스
- 스트링 +
- 자바regex
- CompareTo
- 지연계산
- rust
- ToString
- indexof
- 스트링
- contains
- Camel Style
- follow
- python example
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |