Почему я теряю первого члена в связанном списке - PullRequest
0 голосов
/ 16 марта 2020

Я использую эту «пузырьковую сортировку» для сортировки 1 списка по WordSize, когда он возвращается, всегда теряет последние 1 значения. Это код:

wordLen *sortWordLen(wordLen *wrdlen)
{
  int troca, x;
  wordLen *aux;
  wordLen *empty = NULL;
  do
  {
    troca = 0;
    aux = wrdlen;

      while (aux->next != empty)
      {
        /* printf("||%d %d", aux->wordSize, aux->next->wordSize);*/
        if ((aux->wordSize) <= (aux->next->wordSize))
        {
          /*Change counter*/
          x = aux->counterLen;
          aux->counterLen = aux->next->counterLen;
          aux->next->counterLen = x;

          /*Change wordsize*/
          x = aux->wordSize;
          aux->wordSize = aux->next->wordSize;
          aux->next->wordSize = x;

          troca = 1;
        }

        aux = aux->next;
      }
      empty = aux;
      printf("%d ", empty->wordSize);

  } while (troca);
  return empty;
}

это ввод: WORDSIZE: 7, 2, 4, 8, 6 это вывод: WORDSIZE: 0, 2, 4, 6, 7

...