본문 바로가기
반응형

[알고리즘 + 자료구조]/[Do it 자료구조와 함께 배우는 알고리즘]10

[ 알고리즘 ] Do it 자료구조와 함께 배우는 알고리즘 10장 정리 연습문제 Q_1 > 모든 노드의 데이터를 내림차순으로 출력하는 함수를 작성하세요. void PrintTreeReverse(const BinNode *p); // 모든 노드르 키 값의 내림차순으로 출력 // Q_1 모든 노드의 데이터를 내림차순으로 출력 void PrintTreeReverse(const BinNode *p) { //오른쪽부터 중위순회하면 돼 if(p != NULL) { PrintTreeReverse(p->right); PrintLnMember(&p->data); PrintTreeReverse(p->left); } } 연습문제 Q_2 > FreeTree 함수를 아래와 같이 변형핳면 어떻게 실행되는지 생각해 보세요. // Q_2 FreeTree 함수를 아래와 같이 변경하면 어떻게 실행되는지 생.. 2021. 1. 13.
[ 알고리즘] Do it 자료구조와 함께 배우는 알고리즘 9장 정리 연습문제 Q_1 > 비교 함수인 compare 함수를 사용해 서로 같으 노드를, 가장 앞쪽의 노드를 남기고 모두 삭제하는 다음의 함수를 작성하세요. void Purge(List *list, int compare(const Member *x, const Member *y)); // Q_1 서로 같은 노드가 여러개인 경우 가장 앞쪽의 노드를 남기고 모두 삭제. void Purge(List *list, int compare(const Member *x, const Member *y)) { Node *ptr = list->head; Node *next_ptr; while(ptr != NULL) { // 맨 처음, 노드가 없다는 경우에도 자동 종료됨(list->head == NULL일 경우) next_ptr = .. 2021. 1. 7.
[알고리즘] Do it 자료구조와 알고리즘 8장 정리 & KMP, BM 다시보기 KMP랑 BM 너무 어렵다. 나중에 꼭 다시봐야한다.. 책에서 쉽게 설명해주는데도 이해하기가 힘들다. 연습문제 Q_1 > 널 문자 다음에 문자를 대입해도 정말 출력되지 않는지 확인하세요. #include int main() { char st[10]; st[0] = 'A'; st[1] = 'B'; st[2] = 'C'; st[3] = 'D'; st[4] = '\0'; // 문자열의 끝을 인식시켜줌. 문자열의 형태가 아닌 문자를 하나씩 넣어줬으므로 문자열의 형태를 갖기 위해선 널문자를 추가해주는것이 안전. st[5] = 'X'; // 문자열의 끝 이후이므로 읽히지 않음. printf("문자열 st에는 \"%s\"가 들어 있습니다.", st); } 출력결과 : ABCD 연습문제 Q_2 > 실습 8 - 5 에서.. 2020. 12. 24.
[알고리즘] Do it 자료구조와 알고리즘 7장 정리 연습문제 Q_1 > 실습 7 - 2 프로그램에 다음 8개의 함수를 추가하세요. // 집합이 가득 찼다면 1, 아니면 0을 반환 int IsFull(const IntSet *s); // 집합의 모든 원소를 삭제하는 함수 void Clear(IntSet *s); // 집합 s2, s3의 대칭 차를 s1에 대입하는 함수 IntSet *symmetricDifference(IntSet *s1, const IntSet *s2, const IntSet *s3); // 집합 s1에 s2의 모든 원소를 추가하는 함수(s1 포인터 반환) IntSet *ToUnion(IntSet *s1, const IntSet *s2); // 집합 s1에서 s2에 들어 있지 않은 모든 원소를 삭제하는 함수(s1 포인터 반환) IntSet .. 2020. 12. 6.
반응형