2010-03-22 5 views
0

Je travaille sur du code dans lequel j'ai besoin d'ajouter un noeud dans une liste à double liaison. Ceci est le code que j'ai jusqu'à présent:Ajout d'un noeud dans une liste à double liaison

Node tempNext = cursor.getNext(); 
temp = new Node(item, null, cursor, tempNext); 
tempNext.setPrev(temp); 

cursor est le nœud qui est juste avant où le nouveau nœud ajouté devrait aller.

Comment puis-je définir les autres nœuds pour maintenir correctement l'état de la liste à double liaison?

+0

Il est pas clair ce que votre question. Je l'ai édité avec une estimation, basée sur votre acceptation de la réponse ci-dessous. –

Répondre

6

écriture des noms de variables significatives seront toujours vous aider, ne jamais utiliser des noms comme temp *:

protected void insertNodeAfter(Node currentNode, Node newNode) { 
    Node displacedNode = currentNode.getNext(); 
    currentNode.setNext(newNode); 
    newNode.setNext(displacedNode) 
    displacedNode.setPrev(newNode); 
    newNode.setPrev(currentNode); 
} 
+0

-1 pour répondre à une question de devoirs avec code fonctionnel. –

+0

Vous avez raison Bill, je le mérite. – rodrigoap

+0

@BillK Voir la FAQ. Il n'y a rien contre le fait de répondre aux questions sur les devoirs s'ils sont formulés clairement et peuvent servir de référence utile pour les autres. –

2

On dirait que tout ce que vous devez ajouter est

cursor.setNext(temp); 

Avez-vous une question précise?

+0

Donc: Node tempNext = cursor.getNext(); temp = new Noeud (élément, null, curseur, tempNext); \t \t \t \t \t \t tempNext.setPrev (temp); \t \t \t \t \t \t cursor.setNext (temp); Souhaitez-vous ajouter correctement un nœud à la liste liée? –

+0

Il devrait, en supposant que le constructeur de nœud que vous utilisez correctement définit les nœuds suivant et précédent pour votre nouveau nœud. En outre, @rodrigoap a absolument raison quant aux noms de variables significatifs. –

0
public void addItemBefore(int info) 
{ 
    previousItem = new ListItem(previousItem, info, this); 
} 
Questions connexes