Skip to content
Natuurondernemer
    juillet 2, 2020 by admin

    Listes liées en JavaScript (code ES6)

    Listes liées en JavaScript (code ES6)
    juillet 2, 2020 by admin

    Après avoir créé une classe de nœud et une classe de liste liée, voyons maintenant les opérations d’insertion et de suppression effectuées sur une liste singulièrement liée.

    Opération d’insertion sur une liste singulièrement liée

    Une opération d’insertion va insérer un nœud dans la liste. Il peut y avoir trois cas pour l’opération d’insertion.

    • Insérer un nouveau nœud avant la tête (au début de la liste).
    • Insérer un nouveau nœud après la queue (c’est-à-dire à la fin de la liste).
    • Insertion d’un nouveau nœud au milieu de la liste (à une position aléatoire donnée).

    Insertion d’un nœud au début de la liste singulièrement liée.

    Dans ce cas, un nouveau nœud est ajouté avant le nœud de tête actuel. Pour réaliser cette opération, nous allons d’abord créer un nœud. Le nœud nouvellement créé aura deux propriétés telles que définies dans la fonction constructeur de la classe Node, data et next.

    LinkedList.prototype.insertAtBeginning = function(data){// A newNode object is created with property data and next = null let newNode = new Node(data);// The pointer next is assigned head pointer so that both pointers now point at the same node. newNode.next = this.head;// As we are inserting at the beginning the head pointer needs to now point at the newNode. 
    this.head = newNode; return this.head;}

    newNode.next = this.head ;

    this.head = newNode;

    Insérer un nœud à la fin de la liste singulièrement liée.

    Dans ce cas, un nouveau nœud est ajouté à la fin de la liste. Pour mettre en œuvre cette opération, nous devrons parcourir la liste pour trouver le nœud de queue et modifier le pointeur suivant de la queue pour qu’il pointe vers le nœud nouvellement créé au lieu de null.

    Initialement, la liste est vide et le head pointe vers null.

    LinkedList.prototype.insertAtEnd = function(data){// A newNode object is created with property data and next=null
    let newNode = new Node(data);// When head = null i.e. the list is empty, then head itself will point to the newNode. if(!this.head){
    this.head = newNode;
    return this.head;
    }// Else, traverse the list to find the tail (the tail node will initially be pointing at null), and update the tail's next pointer. let tail = this.head;
    while(tail.next !== null){
    tail = tail.next;
    }
    tail.next = newNode; return this.head;}

    .

    Traverser la liste chaînée pour trouver le dernier nœud (queue).

    tail.next = newNode;

    Insérer un nœud à une position aléatoire donnée dans une liste singulièrement liée

    Pour mettre en œuvre cette opération, nous devrons parcourir la liste jusqu’à atteindre le nœud de la position souhaitée. Nous affecterons ensuite le pointeur suivant du newNode au nœud suivant du nœud de position. Le pointeur suivant du nœud de position peut alors être mis à jour pour pointer vers le newNode.

    newNode.next = previous.next ;

    previous.next = newNode;
    // A helper function getAt() is defined to get to the desired position. This function can also be later used for performing delete operation from a given position. LinkedList.prototype.getAt = function(index){
    let counter = 0;
    let node = this.head;
    while (node) {
    if (counter === index) {
    return node;
    }
    counter++;
    node = node.next;
    }
    return null;
    }// The insertAt() function contains the steps to insert a node at a given index. LinkedList.prototype.insertAt = function(data, index){// if the list is empty i.e. head = null if (!this.head) {
    this.head = new Node(data);
    return;
    }// if new node needs to be inserted at the front of the list i.e. before the head. if (index === 0) {
    this.head = new Node(data, this.head);
    return;
    }// else, use getAt() to find the previous node. const previous = this.getAt(index - 1);
    let newNode = new Node(data);
    newNode.next = previous.next;
    previous.next = newNode;
    return this.head
    }

    .

    Previous articleConseils de soins capillaires noirsNext article Opportunités de carrière

    Laisser un commentaire Annuler la réponse

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Articles récents

    • Comment configurer un mineur ASIC de bitcoin
    • Qu’est-ce qu’un site Superfund?
    • Les vers de sang appâtés par la pêche ont des piqûres d’abeilles
    • Echolalie : Les faits au-delà du « langage de perroquet », du script et de l’écho
    • Citations de Lord of the Flies
    • Guide du débutant pour le pegging
    • 42 Recettes de soupes à la mijoteuse saines
    • 3 risques surprenants d’une mauvaise posture
    • Biographie de Tina Fey
    • Qu’est-ce que les courants océaniques ?

    Archives

    • avril 2021
    • mars 2021
    • février 2021
    • janvier 2021
    • décembre 2020
    • novembre 2020
    • octobre 2020
    • septembre 2020
    • août 2020
    • juillet 2020
    • juin 2020
    • mai 2020
    • avril 2020
    • DeutschDeutsch
    • NederlandsNederlands
    • EspañolEspañol
    • FrançaisFrançais
    • PortuguêsPortuguês
    • ItalianoItaliano
    • PolskiPolski

    Méta

    • Connexion
    • Flux des publications
    • Flux des commentaires
    • Site de WordPress-FR
    Posterity WordPress Theme