![](http://i1.daumcdn.net/thumb/C190x190/?fname=https://blog.kakaocdn.net/dn/LVN3V/btszjzWfn29/MwmON27afMKA1n5kJuinVK/img.png)
C언어를 이용한 자료구조 실습입니다. 덱을 구현하고 회문인지 확인하는 문제입니다. I. 문제 한 개의 문자열을 매개변수로 전달받고, 이 문자열이 앞에서부터 읽으나 뒤에서부터 읽으나 같은지를 판단하여 true 또는 false를 반환하는 check_str() 알고리즘을 작성하라. 가령, check_str()은 문자열이 “madam”이면 true를 반환하고, “data”이면 false를 반환하다. 단, 덱(deque)을 이용하라. 위에서 작성한 알고리즘을 C 함수로 작성하고, 또한 main() 함수를 작성하여 테스트하라. Main()에서는 사용자로부터 문자열을 입력받고, check_str()에 전달하고, 그 결과를 적절하게 출력한다. 위 과정을 사용자가 원할 때까지 반복되게 하라. II. 구현 #include..
![](http://i1.daumcdn.net/thumb/C190x190/?fname=https://blog.kakaocdn.net/dn/MQPIP/btszmzgiaYb/7C1kTa4FRyh6DX9wWJjfKk/img.png)
C언어를 이용한 자료구조 실습입니다. 스택을 2개를 이용하여 큐를 구현합니다. 구현한 큐를 사용해 n번째 까지 피보나치 수열을 출력합니다. I. 문제 정수를 포함하는 2개의 스택 stk1, stk2가 주어져 있을 때, 이 2개의 스택을 이용하여 큐를 구현하고자 한다. 다음 큐 연산에 대한 알고리즘을 작성하라. - is_empty() - is_full() - enqueue(e) : 삽입 연산 (e는 삽입할 항목이다.) - dequeue() : 삭제 연산 사용자로부터 정수 n을 입력받고, n까지의 피보나치 수열을 출력하는 C 프로그램을 작성하고, 테스트하라. 단, 위에서 작성한 큐를 이용하라. II. 구현 [구현 알고리즘] 1. 스택1과 스택2를 생성한다. 2. push가 발생하면 스택1에 넣는다. 3. p..
![](http://i1.daumcdn.net/thumb/C190x190/?fname=https://blog.kakaocdn.net/dn/ewM9UM/btszpBYW0v8/FKNl7XjKAfUf3HyxCj2xz1/img.png)
C언어를 이용한 자료구조 실습입니다. 사용자로부터 식은 입력 받아 스택을 사용하여 후위 식으로 변환한 다음 계산하여 출력하는 문제입니다. 추가사항에 있는 거듭제곱, 오류정정, 두 자리 수(이상) 사용 가능을 구현하였습니다. I. 문제 사용자로부터 수식을 입력받고, 이를 후위 식으로 변환하고, 후위 식을 평가하여 그 결과 값을 출력하는 계산기 프로그램을 작성하고 테스트하라. [계산기 특징] - 입력: 3*(2+8)/5 - 출력: 3*(2+8)/5 = 6 [수식의 특징] - 다양한 괄호 포함 가능 - 공백 포함 가능 - 사칙 연산자 포함 [프로그램 작성 지침] 다음 함수들을 작성하고, 이용하라. - get_exp(exp) // 사용자로부터 식을 읽어들여서 반환 - postfix(iexp, pexp) // 중..
![](http://i1.daumcdn.net/thumb/C190x190/?fname=https://blog.kakaocdn.net/dn/d0CObW/btszkBZZjta/fUSzDDXMW7GKXClkeWM4jk/img.png)
C언어를 이용한 자료구조 실습입니다. I. 문제 정수를 포함한 노드들로 구성된 연결 리스트를 구성하고, 이 리스트에 포함된 수를 출력하는 프로그램을 다음과 같이 작성하라. 연결리스트에 포함된 노드의 구조 타입은 다음과 같이 정의된다. typedef struct list { int val; struct list* next; } list; 1. 한 개의 list 타입의 노드를 동적 생성하고, val 필드는 난수(1~100의 범위)를 발생시켜 초기화하고, next 필드는 NULL로 초기화한 후에, 그 노드의 포인터를 반환하는 get_node()를 작성하라. 2. list 타입의 노드를 사용자가 원하는 개수만큼 생성하여(get_node()를 이용할 것) 다음과 같은 연결 리스트로 구성하여 첫번째 노드의 포인터를..
![](http://i1.daumcdn.net/thumb/C190x190/?fname=https://blog.kakaocdn.net/dn/YWXCb/btszoiSw55R/nMcHJ0soKRJ76gaXfypBH1/img.png)
C언어를 이용한 자료구조 실습입니다. I. 문제 희소 행렬은 다음과 같은 타입으로 표현된다. 배열 data와 int 변수 num으로 구성된 구조체이다. data는 희소 행렬에서 0이 아닌 요소를 포함하며, 이 요소의 타입은 (row, col, val)을 포함하는 구조체이다. 여기서 row, col, val은 해당 요소의 행렬에서 행 위치, 열 위치, 값을 각각 표현한다. num은 data에 포함된 요소의 개수를 표현한다. data의 요소 타입을 element_ty로 정의하라. 희소 행렬의 타입을 sparse_matrix로 정의하라. p, q의 변수를 sparse_matrix의 타입으로 선언하면서, 다음 10*5 크기의 희소 행렬로 각각 초기화하라. 2개의 희소 행렬 p, q를 매개변수로 전달받고, 이 두..
![](http://i1.daumcdn.net/thumb/C190x190/?fname=https://blog.kakaocdn.net/dn/cUQ1xA/btszk6Fatzk/r6iBHrrmKrdkjquydiKAjK/img.png)
C언어를 이용한 자료구조 실습입니다. I. 문제 2개의 다항식을 입력받아서 이들을 빼고, 그 결과 다항식을 출력하는 C 프로그램을 다음과 같이 작성하고, 실행을 통해서 테스트하라. - 다항식의 타입 poly를 정의하라. (다항식의 각 차수에 대해서 한 개의 항이 표현됨) - 2개의 다항식을 선언시 초기화하여 정의하라. - 매개변수로 전달된 다항식 p를 다항식의 형식으로 출력하는 함수 print_poly(p)를 작성하라. - 2개의 다항식, p1, p2를 전달받고, 이들을 빼고 그 결과 다항식 p3를 반환하는 sub_poly(p1, p2, p3)를 작성하라. - 다항식 p와 x 값을 매개변수로 전달받아서 다항식의 값을 계산하여 반환하는 함수 eval_poly (p, x)를 작성하라. II. 구현 #incl..
![](http://i1.daumcdn.net/thumb/C190x190/?fname=https://blog.kakaocdn.net/dn/S0Nxc/btszkyu8rzM/u7jRv9CPx9H8kH9OCpdWKk/img.png)
C언어를 이용한 자료구조 실습입니다. I. 문제 위 그래픽을 2차원 배열로 표현하라. 그래픽에서 회색 셀은 2로 표현하고, 흰 셀은 0으로 표현된다. 위의 그래픽에서 흰 셀을 검정 셀(1로 표현)로 변경하는 change_color() 알고리즘을 순환적으로 작성하라. 단, 대상 셀이 그래픽 경계를 포함하는 것에 유의해야 한다. 위에서 작성한 알고리즘을 C 함수로 작성하여 테스트하라. 테스트는 영역이 그래픽 경계를 포함하는 경우와 그렇지 않은 경우를 모두 포함해야 한다. II. 구현 #include #define WHITE 0 #define BLACK 1 #define SIZE 8 int screen[SIZE][SIZE] = // 배열 선언 및 초기화 { {0,0,0,0,2,2,2,2}, {0,0,0,0,2..
![](http://i1.daumcdn.net/thumb/C190x190/?fname=https://blog.kakaocdn.net/dn/bEkyCf/btszjsbezIx/nQCRQGM0eQamEzNctcWGi1/img.png)
C언어를 이용한 자료구조 실습입니다. I. 문제 Ackermann 함수는 다음과 같이 정의된다. 다음에 답하시오. A(0, n) = n+1 A(m, 0) = A(m-1,1) A(m, n) = A(m-1, A(m,n-1)) m, n >= 1 a. A(3,2)와 A(2,3)의 값을 각각 구하시오. 그 과정을 보여야 한다. b.위의 함수를 구하는 C 프로그램을 순환적으로 작성하고, a)에서 구한 A(3,2), A(2,3)을 테스트하라. c. b)에서 작성한 순환적 함수를 반복적 버전으로 작성하고, b)와 같이 동일하게 테스트하라. [예상출력] II. 구현 - 순환 #pragma warning (disable : 4996) #include #include int Acker(int m, int n) { if (m..