Comment trier une seule liste liée à la constante de l'espace?

J'ai une seule liste, et j'ai besoin de faire le tri dans la constante de l'espace en raison des limitations de la mémoire (en d'autres termes, pas d'espace supplémentaire doit être utilisé qui est proportionnelle au nombre d'éléments dans la liste).

La structure de la liste chaînée est:

  • head.item = la charge utile vous souhaitez effectuer le tri; et
  • head.next = l'élément suivant.

Le besoin constant de l'espace des réductions des solutions là où je créer une autre liste, j'ai besoin de le faire sur place.

Comment puis-je le faire?

  • au moins faire un effort pour poser une bonne question!
  • suis désolé, mais la question ne semble pas être correctement formaté
  • Comme c'est évidemment devoirs, je recommanderais: Vous devriez savoir comment faire pour échanger deux éléments de la liste. Puis chercher une Algorithme de Tri et le mettre en œuvre.
  • Si vous avez donné un peu de code pour ce que vous êtes en train de faire et se demander pourquoi il n'est pas le travail qui peut être mieux, plutôt que de demander aux gens de vous donner la réponse.
  • triés à la constante de l'espace? qu'est-ce que cela signifie? (vraiment je ne comprends pas ce que cela veut dire...parce que la seule constante chose qui peut s'appliquer à de l'algorithme est O(1)).
  • Qu'en est std::slist sgi.com/tech/stl/Slist.html

InformationsquelleAutor Thunderboltz | 2009-05-09