2011-12-28 2 views
0

Можно создать дубликат:
Sort a single linked listC++ алгоритм сортировки Код для односвязанны Список

Что будет сортировочный код алгоритма сортировки в односвязный список в следующей форме после того, как узлы вставлено и я закончил с этим? Я попытался пузырьковой сортировки, но я не мог достичь ..

struct WordCounter { 
     char *word; 
     int word_count; 
     struct WordCounter *pNext; /* pointer to the next word counter in the list */ 
    }; 
+1

Это зависит от выбранного алгоритма сортировки. Что вы пробовали? –

+0

@ Примеры кода и аргументы в Haskell, вероятно, бесполезны для OP. –

ответ

0

Зачем использовать пользовательские связанный список, когда стандартная библиотека имеет класс std::list шаблон? Замените ваш struct с

struct WordCounter { 
    std::string word; 
    unsigned word_count; 
}; 

Палка это в std::list<WordCounter> и использовать его функцию sort члена.

+0

Я не знаком с классом std :: list. Даже если я меняю структуру, я не знаю, как изменить остальную часть моего кода, заполняющего список: S –

+0

@ user1119900 Документы для std :: list находятся здесь http://stdcxx.apache.org/doc/stdlibref/list .html. Он даже поставляется с процедурой sort(), которую вы можете использовать. – nsanders

0

Это будет зависеть от многих факторов. Я предполагаю, что у вас есть задача, которая требует, чтобы вы реализовали сортировку самостоятельно.

  1. Размер связанного списка. Insertionsort хорошо переносится со связанными списками умеренного размера. В противном случае quicksort должен сделать трюк.
  2. Распределения «word_count», которые я предполагаю, сортируются.
  3. Требования к вашей задаче. Является ли стандартная сортировка, т. Е. Std :: sort приемлемой?

Для проблемы, которую я читаю между строками, пара std :: map < word_count, word>> будет способом C++.

Или, возможно, сортировка вставки, если это школьный проект, и вы еще не закрыли Quicksort.

Наиболее релевантный ответ на ваш вопрос: «Что вы пробовали?», Это непростая задача. У вас есть как связанные понятия списка, так и концепции сортировки, чтобы разобраться и повесить.