C언어 6

[C++ Fundamentals of Data Structures/C++ 자료구조론(이석호)] 3.3 큐 추상 데이타 타입 연습문제

2. 클래스 Queue에 큐의 크기와 원소 수를 반환하는 함수를 추가하라. 3. 클래스 Queue에 큐를 두 개의 큐로 분할하는 함수를 추가하라. 첫 번째 큐는 처음부터 시작해서 하나 건너 원소를 포함하고 두 번째 큐는 나머지 원소를 포함한다. 큐 원소의 상대적 순서는 변하지 않는다. 이 함수의 복잡도는 어떻게 되는가? #include #include using namespace std; template class Queue { private: T* queue; T* division1; T* division2; int front, rear, capacity; public: Queue(int queueCapacity = 10) : capacity(queueCapacity) { if (capacity < 1..

[C++ Fundamentals of Data Structures/C++ 자료구조론(이석호)] 2.5 배열의 표현 연습문제

1. [프로그래밍 과제] 다차원 배열이 C++에서 표준 데이타 객체로 제공될지라도 때로는 다차원 배열을 위해 클래스를 정의할 필요가 있다. 이 정의는 다음과 같은 보다 견고한 클래스를 표현한다. (a) 범위 검사를 수행한다. (b) 각 차원의 인덱스 집합으로 0부터 시작하는 연속적인 정수들로 구성되는 것을 요구하지 않는다. (c) 배열 지정을 허용한다. (d) 배열의 초기화를 다른 배열을 사용하여 할 수 있다. (e) 실행 시에 배열의 각 차원의 범위를 선택한다. (f) 배열의 범위와 크기를 동적으로 변경할 수 있다. (g) 배열의 크기를 판단할 수 있는 방법을 제공한다. 실수 원소를 저장하고 위에 명기된 기능들을 제공하는 클래스 mdArray를 구현하라. 이를 위해 동적으로 생성되는 1차원 배열인 원소..

[C++ Fundamentals of Data Structures/C++ 자료구조론(이석호)] 2.4 희소 행렬 연습문제

1. 이 절에서 사용된 표현에서 임의의 원소 A[i][j]를 찾아 그 값을 변경하는 데 소요되는 시간은 얼마나 되는가? - 일반적인 방법 : O(cols*rows) - 빠른 전치 행렬 : O(cols+terms) 3. 희소 행렬을 읽고 출력하는 C++ 함수를 작성하라. 이것은 를 다중화해서 구현되어야 한다. 입출력 형식을 설계해야 하지만 내부 표현은 이 절에서 사용된 0이 아닌 원소들의 1차원 배열을 사용하여야 한다. 이 함수들의 연산 시간을 분석하라. *SparseMatrix 코드의 일부분 발췌 * 전체 코드는 첨부파일에 4. RowSize와 RowStart를 저장하기 위해 두 개의 배열을 사용하지 않고 단지 하나의 배열만을 사용하도록 FastTranspose 함수를 다시 작성하라. //변경 전 // ..

[C++ Fundamentals of Data Structures/C++ 자료구조론(이석호)] 1.7 성능 분석과 측정 연습문제

1. 두 개의 함수 n²와 2^n/4를 여러 가지 n의 값에 대해 비교하라. 어느 때 두 번째 함수가 첫 번째 함수보다 커지는가? 3. 아래 두 프로그램 세그먼트에서 모든 명령문의 실행 횟수를 구하라. 4. (a) 프로그램 1.32의 모든 적절한 위치에 count를 증가시키는 명령문을 추가하라. * x[6]={1,2,3,4,5,6} / n=5로 두고 문제 풀었음. * count를 c로 표현하였음. * 출력 결과 (b) 명령문을 제거해서 이 결과 프로그램을 간소화 하라. 간소화된 프로그램은 (a)의 프로그램으로 계산된 count 값과 같은 값을 가져야 한다. (c) 프로그램이 종료했을 때 count의 정확한 값은 얼마인가? count의 초기값은 0이라고 가정하라. (d) 빈도를 이용하여 프로그램 1.32의..

[C++ Fundamentals of Data Structures/C++ 자료구조론(이석호)] 1.6 표준 템플릿 라이브러리 연습문제

1. 상이한 원소의 모든 순열을 출력할 수 있도록 프로그램 1.14를 수정해 보라. 순열을 생성하기 전에 원소 리스트를 오름파순으로 정렬하고 수행하라. 정렬을 하기 위해서는 [start, end)범위에 있는 원소를 오름차순으로 정렬하는 STL 알고리즘 [ sort(start, end) ]을 이용하라. 코드를 테스트해 보라. * 9번째 줄 코드가 정렬 코드 2. 상이한 원소의 모든 순열을 출력할 수 있도록 프로그램 1.14를 수정해보라. 먼저 처음 순열보다 사전식으로 큰 순열을 행성하기 위해 next_permutation을 이용해서 수행하고 다음에는 처음 순열보다 사전식으로 작은 순열을 생성하기 위해 STL 알고리즘 prev_permutation을 이용해서 수행하라. - next_permutation 이용..