2012-02-18 5 views
2

나는 사람의 연락처 정보 (이름, 전화 번호 등)를 포함하는 C 구조를 가지고 있습니다. "연락처"구조는 연결된 목록 내에 포함되어 있습니다. 연결된 목록이 알파벳 순서 (오름차순)로 정렬되도록 노드를 삽입해야합니다.C에서 알파벳순으로 이름 정렬

C에서 호출 할 수있는 내장 정렬 기능이 있습니까? 아니면 내 자신의 정렬 기능을 작성해야합니까? 내장 함수가있는 경우 링크 된 목록 내의 구조에서이 함수를 호출하는 방법을 보여줄 수 있습니까?

+0

C++ 컴파일러가 있다면'std :: list :: sort()'의 구현을 살펴볼 수 있습니다. 이것은 아마도 작성해야 할 것에 매우 가깝게 될 것입니다. 헤더 파일에 전적으로 포함됩니다. –

+1

귀하의 숙제는 정렬 된 순서로 링크 된 목록을 작성하거나 목록을 작성한 후 일반적으로 정렬하는 것을 기반으로합니까? 링크 된 목록을 작성하는 중이라면 목록 삽입 기능에 따라 정렬을 처리하는 "삽입 된 링크 된 목록 삽입"을 찾아야합니다. – jmq

+0

@jmquigley 코드를 더 보면, 알파벳순으로 이름이 떨어지는 위치에 따라 링크 된 목록에 새 항목을 삽입해야하는 것처럼 보입니다. 그래서 나는 그렇게 연결된 목록을 만들 것입니다. 노드를 사용하여 사전 순으로 새 항목을 삽입하는 무언가를 어디서 볼 수 있는지 알고있는 예가 있습니까? – aclark

답변

3

"목록"에는 표준 정렬 방법이 없습니다. 가장 가까운 값은 qsort (사용자 정의 개체를 실제로 정렬 할 수 있음)이지만 연속 범위 (배열 등)에서만 작동합니다.

아마도 자신의 정렬 절차를 구현하거나 목록 대신 사용하고 배열해야 할 것입니다.

+0

감사합니다. 그게 내가 할 일입니다. – aclark

0

다음은 삽입 된 링크 된 목록을 삽입하는 코드 예제입니다. 이 절단하지 않고 당신을 위해 붙여하지만, 삽입의 유형에 무엇을 기대을 보여줍니다 : "삽입()"통화

http://www.c.happycodings.com/Sorting_Searching/code8.html

초점을 맞 춥니 다. 테스트를 위해이 코드를 컴파일하지 않았지만 읽었을 때 올바른 것으로 보입니다. 목록 및 포인터 조정을 검색하는 방법을 보여줍니다. 이 코드에서 문제를 해결할 수 있어야합니다.

관련 문제