주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 이번에 소개하는 '원형 연결 리스트'는 앞서 소개한 단순 연결 리스트를 조금만 변경하면 쉽게 만들 수 있습니다. 따라서 그 구조를 이해하거나 구현하는 것은 어렵지 않습니다. 앞서 우리가 구현한 연결 리스트의 마지막 노드는 NULL을 가리켰습니다. 바로 이 마지막 노드가 첫 번째 노드를 가리키게 하면 이것이 바로 '원형 연결 리스트'가 됩니다. 그럼 꼬리가 다시 머리를 가리키게 하는 방법에 대해서 생각해 봅니다. 생각해보면 원형 연결 리스트를 구현하기 위해 tail 포인터가 필요하다는 생각이 듭니다. 하지만 그렇게 하면 원형 연결 리..
앞서 제시한 연습문제 04. 3에서는 다음 Point 구조체를 기반으로 한 예제의 작성을 요구했습니다. typedef struct Point { int xpos; int ypos; } Point; 그런데 당시에는 연결 리스트에 정렬의 기준을 등록하지 않았습니다. 하지만 이번에는 다음의 정렬 기준을 연결 리스트에 등록하여 그 결과를 확인하고자 합니다. x좌표의 값을 기준으로 오름차순 정렬이 되게 합니다. x좌표의 값이 같은 경우에는 y좌표를 대상으로 오름차순 정렬이 되게 합니다. 연습문제 04. 3의 답안에서 변경되어야 하는 파일은 main 함수가 담겨있는 소스 파일 하나여야 합니다. 제가 작성한 코드는 아래의 '더보기'를 클릭하여 확인할 수 있습니다. 혹시 이해가 되지 않거나 추가 설명이 필요하다면 언제..
주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 앞서 구현한 연결 리스트에서 정렬 기준의 설정과 관련 있는 부분은 다음과 같습니다. 따라서 이들은 하나로 묶어서 이해해야 합니다. 연결 리스트의 정렬기준이 되는 함수를 등록하는 SetSortRule 함수 SetSortRule 함수를 통해서 전달된 함수 정보를 저장하기 위한 LinkedList의 멤버 comp comp에 등록된 정렬기준을 근거로 데이터를 저장하는 SInsert 함수 위에서 언급한 세 가지를 하나의 문장으로 정리하면 다음과 같습니다. "SetSortRule 함수가 호출되면서 정렬의 기준이 리스트의 멤버 comp에 등록되..
2021.03.08 - [자료구조 공부일지] - Chapter 03. 배열을 이용한 리스트의 구현 Chapter 03. 배열을 이용한 리스트의 구현 주의 사항! 이 글은 제가 직접 공부하는 중에 작성되고 있습니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 현재 배우는 리 koey.tistory.com 위 글에서 Point 구조체의 주소값을주소 값을 저장하기 위해 배열 기반의 리스트를 사용했습니다. 이번에도 마찬가지로 연결 리스트를 이용해 Point 구조체의 주소 값을 저장할 수 있도록 합니다. 단, 다음의 주어지는 main 함수를 변경하여서는 안 됩니다. 그리고 ArrayList.h와 ArrayList.c 파일을 대신해서 DLinkedL..