퀴즈에 등장하는 개념 요약 // 해당 도서를 읽지 않으시는 분들도 생각하고 풀어보실 수 있습니다.# 전진 이동법 전진 이동법(Move to front method)은 어느 항목이 한 번 탐색되고 나면, 그 항목을 데이터 집합의 가장 앞(링크드 리스트에서는 헤드)에 위치시키는 방법이다. 이렇게 하면 한 번 찾은 항목을 연이어 또 찾는 경우 단번에 탐색을 완료할 수 있다. MS 워드의 '최근 문서'기능과 같은 원리로 동작한다고 생각하면 이해가 쉽다. 전진이동법의 한계는 한 번 탐색된 항목이 곧 이어 또다시 검색될 가능성이 높은 데이터 집합에서만 사용해야한다 점이다. # 전위법 전위법(Transpose method)은 탐색된 항목을 바로 이전 항목과 교환한다는 것 말고는 기본적으로 전진 이동법과 같은 전략을 ..
Vitamin Quiz 문제) 버블 정렬은 이미 정렬이 되어 있어도 모든 루프를 돌며 비교를 수행하는 미련한 알고리즘이다. 정렬되어 있는 경우에는 루프를 취소하고 빠져나올 수 있도록 알고리즘을 개선하라. 풀이 플래그(flag) 변수를 하나 사용함으로써 문제를 해결했다. 첫 검사에서 비교를 했는데 바꿀 것이 없었다면 플래그 값은 변함이 없을 것이다. 첫 검사로부터 데이터가 정렬이 되어 있는지를 플래그를 통해 확인한다. /************************************************* ** BubbleSort Vitamin Quiz *************************************************/ #include void BubbleSort(int dataS..
Vitamin Quiz 문제) SLL_insertAfter( ) 함수는 특정 '노드 뒤'에 새로운 노드를 삽입하는 기능을 수행한다. SLL_InsertNewHead( ) 함수는 '헤드 앞'에 새로운 헤드를 삽입할 수 있다. 그렇다면 특정 '노드 앞'에 새로운 노드를 삽입하는 SLL_InsertBefore( )함수도 존재할 것이다. 이 함수를 구현하라. 원형은 다음과 같다.void SLL_InsertBefore( Node **Head, Node *Current, Node *NewHead ); 다음으로 링크드 리스트의 모든 노드를 한 번에 제거하는 SLL_DestroyAllNodes( ) 함수를 작성하라. 원형은 다음과 같다.SLL_DestroyAllNodes( Nodes **List ); 풀이 // 이 글..
- Total
- Today
- Yesterday