랜덤하게 2진트리를 생성하고, 각각의 방식 (Preorder, Inorder, Postorder) 으로 출력하는 프로그램을 만들어 보았다. 먼저 랜덤하게 생성되는 트리는 중복되지 않는 20개의 숫자를 랜덤하게 생성하여 이진트리로 만들었다. 랜덤하게 생성된 이진트리의 구조는 다음과 같다. 이를 각각의 방식으로 출력해주는 함수를 만들어 출력해 주었다. 출력함수는 다음과 같다. Preorder 방식void PrintPreorder(node* tree){ if(tree != NULL) { printf("%d ",tree->data); PrintPreorder(tree->left_child); PrintPreorder(tree->right_child); } else return;} Inorder..
Binary Tree Traversal, 즉 2진트리 탐색에 대해 알아보자. 정보처리기사 시험문제에도 나오는 이론이기 때문에 중요할듯 싶다 ㅋ 이진트리탐색에서 항상 나오는 3가지 방법, Inorder Traversal, Preorder Traversal, Postorder Traversal이 있고, 한가지 더 추가적으로 보자면 Levelorder Traversal을 이야기 할 수 있을 것이다 이들의 방법은 각각 이렇다. 먼저 그림을 보고 이해하자면 다음과 같은 Binary Tree, 즉 2진트리가 있을 때 Inorder는 Left child -> Root -> Right child 순으로, Preorder는 Root -> Left child -> Right child 순으로, Postorder는 Left..
전체 소스 및 보고서 다운받기 다항식을 Linked LIst를 이용하여 표현하기 위해 다음과 같은 node를 구성하였다.typedef struct node { int coef; // 계수 int exp; // 지수 struct node *next;} node; 즉 2x^3 이라는 항이 있다면 node에 coef = 2; exp = 3; 이 저장되는 방식이다. 이러한 다항식을 List로 표현해 보았다. 값으로 0, 0을 가지는 header노드와 -1, -1을 가지는 tail 노드를 포함하여 List형태로 표현한다.node* makePolynomial(int _index){ node* h = (node*)malloc(sizeof(node)); node* s; int i, rannum, ranCoef, c..
Linked List란 다음 그림과 같은 구조로 포인터를 이용하여 List를 만들어 내는 것이다. 즉 데이터와 link를 이용하여 하나의 배열 형태로 이루어 져 있지만 실제로는 List형태로 연결되어 있는 것이다. List를 사용하면 Array를 이용할 때 정적인 방법으로 코드 작성시에 Array 사이즈를 지정해 주던것을 동적인 방법으로 만들어 줄 수 있고, 구조체의 내용에 따라 다양한 data를 이용하여 List를 만들어 낼 수 있다.typedef struct node { int data; struct node *next;}node; 위의 구조대로 node를 만들어 낸다면 구조체의 선언을 위와 같이 해주면 되고, 만약에 int형 data말고도 추가적으로 더 넣고 싶은게 있다면 구조체에 넣어주기만 하면..
괄호가 없는 식일 때 Infix (중위표기식)에서 Postfix (후위표기식) 로 바꾸는 방법을 구현해 보았다. 이 과정에서는 연산자의 위치를 결정하기 위해 STACK을 이용하였다. 보고서 및 전체 소스 다운받으러 가기 예를들어 a+b*c 라는 식을 후위표기식으로 변환한다고 해보자. 연산자를 위한 STACK을 만들고 연산자를 만났을 때 STACK에 저장한다. 이 과정에서 연산자의 우선순위를 생각해 주어야 하는데, 우선순위는 우리가 일반적으로 알고 있는것과 같이 *,/ 가 +,- 보다 더 높은 경우들을 생각하면 된다. 이러한 우선순위를 적용하기 위해 프로그램 내에서 따로 우선순위를 결정해주는 함수를 만들어 주었다.int Oper_order(char oper) //스택 내부의 연산자의 우선순위{ if(..
Postfix로 작성된 수식을 STACK을 이용하여 연산하는 프로그램을 작성해 보았다. 보고서 및 전체 소스 다운로드 연산과정은 다음과 같다. 예를들어 8/2-3 이라는 Infix방식의 수를 82/3- 의 Postfix방식으로 바꾼뒤 STACK을 이용하여 연산을 하게 되면 연산될 두 숫자를 STACK에 저장하고 연산자를 만났을 때 연산, 결과를 다시 STACK에 넣는다. 같은 방식으로 식이 종료될 때 까지 반복하면 STACK에는 전체의 연산 결과가 저장될 것이고, 이를 결과로 출력해 준다.int calculate(char *oper) { int i=0; int j; int temp = 0; // 연산된 값을 저장하기 위한 temp 변수 int temp_mul = 1; // 제곱 연산을 하기 위한 ..
- Total
- Today
- Yesterday
- 크롬캐스트
- chromecast2
- 여권케이스
- AR Stickers
- LG워치
- Chromecast
- 워치어베인
- 글자수 세는 프로그램
- 커플여권지갑
- 글자수 세기 프로그램
- AR스티커
- LG페이
- 가죽여권케이스
- 글로벌자동차유리
- 가죽여권지갑
- 워치어베인 2nd 에디션
- LG워치 어베인
- 워치어베인 2nd edition
- 유리스톤칩
- 미성년자녀증여세
- LGG6
- 자동차유리스톤칩
- 무료복원
- 크롬캐스트2
- LGPay
- 앞유리돌빵
- 오드컨테이너
- 증여세셀프신고
- 에어팟안드로이드
- 커플여권케이스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |