2015-07-12 46 views
0

我正在學習C.我創建了一個程序來計算文本文件中單詞的頻率。 我的結構包含三個鍵(頻率,詞,nextLink)。如何使用'鍵'進行排序:C

事情是我有使用鍵排序的結構數組,但不知道如何去做這件事。任何指導,鏈接都會很棒。

我提供我arrayOfStructs排序的代碼

void sortArray(int array[], int count) 
{ 
    int i,j,temp; 
    for (i = 0; i < count; ++i) 
    { 
     for (j = i + 1; j < count; ++j) 
     { 
      if (array[i] > array[j]) 
      { 
       temp = array[i]; 
       array[i] = array[j]; 
       array[j] = temp; 
      } 
     } 
    } 
} 

這將是排序的LinkedList

void sortList(struct Node *head) 
{ 
    struct Node *i, *j, *temp; 

    for (i = head; i != NULL ; i->next) 
    { 
     for (j = head->next; j != NULL; j->next) 
     { 
      if (head->frequency < head->next->frequency) 
      { 
       temp = head; 
       head = head->next; 
       head->next = temp; 
      } 
     } 
    } 
} 

struct Node 
{ 
    int frequency; 
    char word[50]; 
    struct Node *next; 
}; 

回答

-1

使用i = i->next而不是i->nextj = j->next代替j->next的可能途徑。

void sortList(struct Node *head) 
{ 
    struct Node *i, *j, *temp; 

    for (i = head; i != NULL ; i = i->next) // i = i->next 
    { 
     for (j = head->next; j != NULL; j = j->next) // j = j->next 
     { 
      if (head->frequency < head->next->frequency) 
      { 
       temp = head; 
       head = head->next; 
       head->next = temp; 
      } 
     } 
    } 
} 
+0

負面反饋的原因是什麼? :o –

相關問題