0
현재 전화 번호에 따라 링크를 정렬하려고하고 정렬 알고리즘은 전화 번호를 정렬하지만 전화 번호는 전화 번호는 전체 노드 자체를 교환하지 않습니다. 이것은 내가이 난 단지 전화 번호 및 그 밖의 모든 것이를 swaping하고 내 스왑 기능으로 인해 일어나는 이유를 정확하게 알고 내 연결리스트 구조체링크 된 목록의 전체 노드를 교환하여 해당 노드 내의 모든 단일 정보를 서로 바꾸는 방법
struct List
{
char*firstName;
char*lastName;
char*phoneNumbers;
struct List*next;
}
typedef struct List list;
입니다. 나는 몇 시간 동안 노력했지만, 나는 아무데도 가지 않는 것 같아. 나는 뭔가를 놓친다 ???
void insertSort(list*theList)
{
int swapped;
list *ptr1;
list *lptr = NULL;
ptr1 = malloc(sizeof(list));
if (ptr1 == NULL)
{
return;
}
do
{
swapped = 0;
ptr1 = theList;
while (ptr1->next != lptr)
{
if (strcmp(ptr1->phoneNumbers,ptr1->next->phoneNumbers) > 0)
{
swap(ptr1, ptr1->next);
swapped = 1;
}
ptr1 = ptr1->next;
}
lptr = ptr1;
}
while (swapped);
}
void swap (list*elementOne, list*elementTwo)
{
char*temp;
temp = elementOne->phoneNumbers;
elementOne->phoneNumbers = elementTwo->phoneNumbers;
elementTwo->phoneNumbers= temp;
}
나는 이전과 똑같은 것을 시도해 보았지만 불행히도 그것을 정렬하지는 않는다. 어쩌면 내 insertSort가 올바르지 않을 수도 있습니다. – user3806622