4장 연습문제
1. 8개의 원소가 있는 선형 리스트에서 3번 자리에 새로운 원소를 삽입하려면 몇 개의 원소를 옮겨야 하는가?
답 안 |
|
n - k + 1 = 7 + 3 - 1 = 5 |
2. 선령 리스트 A를 C 프로그램에서 2차원 배열 A[5][3]으로 표현했을 때 A[3][1] 원소는 몇 번째 원소인가?
답 안 |
|
I * nj + j = 3 * 3 + 1 = 10 , 인덱스가 10이므로 11번째 저장원소
|
3. 시작 위치가 100번지고, 원소의 길이가 5바이트인 선형 리스트가 행 우선 순서 방법으로 저장되어 있을 때 9번째 원소의 주소는 얼마인가?
답 안 |
|
시작주소 + (인덱스 * 바이트 ) = 100 + 8 * 5 = 140 |
4. 다음 행렬에 대한 전치 행렬을 구하시오.
답 안 |
|
소스)
#include<stdio.h> #define ROW 3 #define COL 4 void trans_array(int (*a)[COL]);
int main(void) { int a[3][4]={1,3,5,7,5,7,9,4,4,9,5,9}; int i,j; puts(" ==== 기본 행렬 ==== "); for(i=0;i<3;i++) { for(j=0;j<4;j++) printf("%4d", a[i][j]); printf("\n"); }
trans_array(a);
return 0; }
void trans_array(int (*a)[COL]) { int i,j; printf("\n ==== 전치 행렬 ==== \n"); for(i=0;i<COL;i++) { for(j=0;j<ROW;j++) printf("%4d", a[j][i]); printf("\n"); } } |
4. 다음 희소 행렬을 2차원 배열의 논리적 구조로 표현하시오.
답 안 |
|
소스)
#include<stdio.h> #define ROW 7 #define COL 4
void sparse_array(int (*a)[COL], int count);
int main(void) { int a[ROW][COL]={{0, 0, 0, 9}, {0, 1, 0, 0}, {0, 0, 0, 0}, {0, 0, 7, 0}, {0, 0, 0, 0}, {3, 0, 0, 0}, {0, 0, 0, 0}, }; int i, j, count=0; printf(" ==== 기본 행렬 ====\n"); for(i=0;i<ROW;i++){ for(j=0;j<COL;j++){ printf("%4d",a[i][j]); if(a[i][j] !=0) count++; } printf("\n"); } sparse_array(a,count);
} void sparse_array(int (*a)[COL], int count) { int i,j; printf("\n====희소 행렬====\n"); printf("%d\t%d\t%d\n\n", ROW, COL, count);
for(i=0;i<ROW;i++) for(j=0;j<COL;j++) if(a[i][j] !=0) printf("%d\t%d\t%d\n",i,j,a[i][j]); } |
'Book' 카테고리의 다른 글
[한빛미디어] 인터넷 프로그래밍 입문 2장 연습문제 (0) | 2009.04.13 |
---|---|
[한빛미디어] 인터넷 프로그래밍 입문 1장 연습문제 (0) | 2009.04.13 |
[한빛미디어] C로 배우는 쉬운 자료구조 (연습문제 3장) (0) | 2009.04.10 |
[한빛미디어] C로 배우는 쉬운 자료구조 (연습문제 2장) (1) | 2009.04.10 |
[한빛미디어] C로 배우는 쉬운 자료구조 (연습문제 1장) (0) | 2009.04.10 |