2010-11-21 6 views

Répondre

2

ont une classe intérieure privée appelée Node qui représente les données de la liste, qui a un noeud suivant, un noeud précédent, et une valeur de données, et un moyen d'obtenir et de définir chacun.

2

moins que ce soit des devoirs (dans ce cas, vous devez marquer comme tel), il serait difficile de faire mieux que cela:

class MyLinkedList<T> extends java.util.LinkedList<T> { 
} 

De la documentation:

Tous les opérations se déroulent comme prévu pour une liste doublement chaînée . Les opérations indexées dans la liste traverseront la liste depuis le début ou la fin, selon la plus proche de l'index spécifié.

+1

Cela ne fait cependant absolument rien pour apprendre comment une liste chaînée fonctionne ou est implémentée. –

+1

C'est vrai. Mais ce n'est pas comme ça que j'ai interprété la question. – aioobe

+0

Il a demandé à propos de l'implémenter, donc on supposerait qu'il ne veut pas simplement hériter d'une autre implémentation. –

0

java.util.LinkedList <E> est déjà doublement lié, vous pouvez extraire/modifier la source si elle ne correspond pas à vos besoins.

0

Ne l'implémentez pas vous-même, utilisez LinkedList. Cependant, je suppose que c'est une sorte de problème de devoirs alors peut-être que vous pourriez regarder le code source à LinkedList.

1

Si vous êtes intéressé par la façon dont les listes de liens doubles et d'autres structures de données sont implémentées, je vous recommande de consulter le livre de Duane Bailey sur les structures de données. Il est disponible en libre pdf à:

http://www.cs.williams.edu/~bailey/JavaStructures/Book.html

Il est un livre assez simple en avant, et il montre comment les différentes structures de données peuvent être mises en œuvre - il y a une section qui couvre bien votre question. Je l'ai trouvé très utile dans mes études sur les structures de données et leur fonctionnement; J'espère que vous trouverez cela utile aussi.