컴퓨터공학 💻/자료구조
-
함수의 매개변수로 포인터 전달 포인터는 다른 변수의 주소를 값으로 가지는 변수입니다. 포인터의 연산자 *(asterisk)는 포인터가 가리키는 값을 의미합니다. 즉, int *a = &b 로 선언했을 때 포인터 변수a는 변수b의 주소를 값으로 가지며 *a는 변수 b가 가진 값을 가리키는 것입니다. 이것을 다른 말로 'dereferncing' 한다고 말합니다. 포인터를 이야기하면 항상 나오는 개념이 배열입니다. 포인터는 배열과 매우 비슷합니다. 배열 int a[4] 를 선언했다고 합시다. 우리가 배열에 들어있는 특정 인덱스의 값에 접근하려면 a[0] = 2, a[2] = 30 등 이러한 방식으로 사용합니다. 이것은 포인터에서 *a = 2, *a = 30 과 유사합니다. 지정 영역에는 차이가 있지만 둘 다 ..
[자료구조] 함수의 매개변수로 포인터 전달함수의 매개변수로 포인터 전달 포인터는 다른 변수의 주소를 값으로 가지는 변수입니다. 포인터의 연산자 *(asterisk)는 포인터가 가리키는 값을 의미합니다. 즉, int *a = &b 로 선언했을 때 포인터 변수a는 변수b의 주소를 값으로 가지며 *a는 변수 b가 가진 값을 가리키는 것입니다. 이것을 다른 말로 'dereferncing' 한다고 말합니다. 포인터를 이야기하면 항상 나오는 개념이 배열입니다. 포인터는 배열과 매우 비슷합니다. 배열 int a[4] 를 선언했다고 합시다. 우리가 배열에 들어있는 특정 인덱스의 값에 접근하려면 a[0] = 2, a[2] = 30 등 이러한 방식으로 사용합니다. 이것은 포인터에서 *a = 2, *a = 30 과 유사합니다. 지정 영역에는 차이가 있지만 둘 다 ..
2021.04.10 -
배열을 이용한 다항식 표현 다항식의 일반적인 형태는 다음과 같습니다. 프로그램에서 다항식을 처리하려면 다항식을 위한 자료구조가 필요합니다. 배열을 이용한 다항식의 표현 방법에는 2가지가 있습니다. >> (1) 모든 항을 저장한다. >> (2) 0이 아닌 항만을 저장한다. (1) 모든 항을 저장하는 방식 #define MAX_DEGREE 101 // (다항식의 최대차수 + 1) 101 #include typedef struct { int degree; //최고차항의 지수 float coef[MAX_DEGREE]; }polynomial; polynomial a = { 5,{10,0,0,0,6,3} }; //10X^5+6X+3 polynomial poly_add1(polynomial A, polynomial ..
[자료구조] 배열을 이용한 다항식 표현1배열을 이용한 다항식 표현 다항식의 일반적인 형태는 다음과 같습니다. 프로그램에서 다항식을 처리하려면 다항식을 위한 자료구조가 필요합니다. 배열을 이용한 다항식의 표현 방법에는 2가지가 있습니다. >> (1) 모든 항을 저장한다. >> (2) 0이 아닌 항만을 저장한다. (1) 모든 항을 저장하는 방식 #define MAX_DEGREE 101 // (다항식의 최대차수 + 1) 101 #include typedef struct { int degree; //최고차항의 지수 float coef[MAX_DEGREE]; }polynomial; polynomial a = { 5,{10,0,0,0,6,3} }; //10X^5+6X+3 polynomial poly_add1(polynomial A, polynomial ..
2021.03.21 -
배열과 구조체의 활용 배열 >> 같은 자료형의 변수들이 연속된 메모리 공간을 차지하는 자료구조 >> 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료구조 >> 자료형이 같은 데이터들을 하나로 묶는 방법 구조체 >> 하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형 >> 자료형이 다른 데이터들을 하나로 묶는 방법 배열과 구조체 자료구조의 활용 문제들입니다. 문제를 먼저 풀어보시고 풀이를 확인해보시기 바랍니다. 1. 크기가 8인 배열 pow[]를 선언하고 여기에 3의 제곱 값들을 저장해보자. 즉 배열의 첫 번째 요소에는 3^0을 저장하고 두 번째 요소에는 3^1값을 저장한다. 마지막 요소에는 3^7값을 저장한다. for 루프를 이용하여 pow[] 배열의 전체 요소의 값을 출력하는 프로그램을 작성하라...
[자료구조] 배열과 구조체의 활용배열과 구조체의 활용 배열 >> 같은 자료형의 변수들이 연속된 메모리 공간을 차지하는 자료구조 >> 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료구조 >> 자료형이 같은 데이터들을 하나로 묶는 방법 구조체 >> 하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형 >> 자료형이 다른 데이터들을 하나로 묶는 방법 배열과 구조체 자료구조의 활용 문제들입니다. 문제를 먼저 풀어보시고 풀이를 확인해보시기 바랍니다. 1. 크기가 8인 배열 pow[]를 선언하고 여기에 3의 제곱 값들을 저장해보자. 즉 배열의 첫 번째 요소에는 3^0을 저장하고 두 번째 요소에는 3^1값을 저장한다. 마지막 요소에는 3^7값을 저장한다. for 루프를 이용하여 pow[] 배열의 전체 요소의 값을 출력하는 프로그램을 작성하라...
2021.03.19 -
1. 순환 알고리즘 같은 프로그램에 대해서 순환알고리즘을 사용하는 경우와 반복알고리즘을 사용하는 경우가 있습니다. 어떤 프로그램이냐에 따라 두 알고리즘의 효율성이 다르게 작용합니다. 두 알고리즘의 차이를 비교해가며 코드를 먼저 풀이해보시고 설명을 확인해보시기 바랍니다. 1-1. 다음을 계산하는 순환 함수를 작성하라 > 1 + 2 + 3 + … + n int factorial (int n) { if ( n == 1 ) return 1; else if ( n >= 2 ) return ( n + factorial (n - 1) ); } 함수 설명 더보기 (1) factorial 함수에 n을 매개변수로 보냅니다 (2) n이 1이면 1을 return합니다 (3) n이 1이 아니고 2와 같거나 크면 n을 retur..
[자료구조] 순환 알고리즘과 반복 알고리즘 비교1. 순환 알고리즘 같은 프로그램에 대해서 순환알고리즘을 사용하는 경우와 반복알고리즘을 사용하는 경우가 있습니다. 어떤 프로그램이냐에 따라 두 알고리즘의 효율성이 다르게 작용합니다. 두 알고리즘의 차이를 비교해가며 코드를 먼저 풀이해보시고 설명을 확인해보시기 바랍니다. 1-1. 다음을 계산하는 순환 함수를 작성하라 > 1 + 2 + 3 + … + n int factorial (int n) { if ( n == 1 ) return 1; else if ( n >= 2 ) return ( n + factorial (n - 1) ); } 함수 설명 더보기 (1) factorial 함수에 n을 매개변수로 보냅니다 (2) n이 1이면 1을 return합니다 (3) n이 1이 아니고 2와 같거나 크면 n을 retur..
2021.03.19 -
순환 알고리즘 원리 순환알고리즘의 원리와 관련 문제입니다. 1. 다음 함수를 sub(7)로 호출하면 반환값은? #include int sub(int n) { if (n < 0) return 0; return n + sub(n - 3); } int main(void) { printf("%d", sub(7)); return 0; } 함수 설명 더보기 sub(7) // 반환형이 정수형이고 매개변수로 정수형을 받는 sub() 함수에 정수 7을 매개변수로 보냅니다 return 7 + sub(4) // if문에 의해 n의 값 정수 7은 조건에 부합하지 않으므로 그대로 7을 return함과 동시에 7에서 3을 뺀 정수 4를 순환형식으로 다시 호출합니다 return 7 + 4 + sub(1) // if문에 의해 n의 ..
[자료구조] 순환 알고리즘 원리순환 알고리즘 원리 순환알고리즘의 원리와 관련 문제입니다. 1. 다음 함수를 sub(7)로 호출하면 반환값은? #include int sub(int n) { if (n < 0) return 0; return n + sub(n - 3); } int main(void) { printf("%d", sub(7)); return 0; } 함수 설명 더보기 sub(7) // 반환형이 정수형이고 매개변수로 정수형을 받는 sub() 함수에 정수 7을 매개변수로 보냅니다 return 7 + sub(4) // if문에 의해 n의 값 정수 7은 조건에 부합하지 않으므로 그대로 7을 return함과 동시에 7에서 3을 뺀 정수 4를 순환형식으로 다시 호출합니다 return 7 + 4 + sub(1) // if문에 의해 n의 ..
2021.03.13