


Recherchez le nième nœud de la dernière liste chaînée en C++ à l'aide de la méthode récursive
Étant donné une liste à chaînage unique et un entier positif N en entrée. Le but est de trouver le Nème nœud à partir de la fin de la liste donnée en utilisant la récursivité. Si la liste d'entrée a des nœuds a → b → c → d → e → f et N vaut 4, alors le quatrième nœud du dernier sera c.
Nous allons d'abord parcourir jusqu'au dernier nœud de la liste et au retour du nombre d'incréments récursifs (retour en arrière). Lorsque count est égal à N, un pointeur vers le nœud actuel est renvoyé comme résultat.
Voyons différents scénarios d'entrée et de sortie de cette -
Input- Liste : - 1 → 5 → 7 → 12 → 2 → 96 → 33 N=3
Sortie− Le Nième nœud à partir du bas Expliquez
comme : 2− Le troisième nœud est 2.
Entrée− Liste : - 12 → 53 → 8 → 19 → 20 →96 → 33 N=8 p>
Sortie- Le nœud n'existe pas.
Explication - La liste ne comporte que 7 nœuds, il ne peut donc pas y avoir de 8ème nœud à partir du bas
La méthode utilisée dans le programme ci-dessous est la suivante
Dans cette méthode, nous arriverons d'abord à la fin du. list utilisant la récursion, lors du retour en arrière, nous incrémenterons une variable de comptage statique. Une fois que le nombre est égal à l'entrée N, le pointeur de nœud actuel est renvoyé.
-
Prenez une structure Node avec une partie de données int et utilisez Node comme pointeur suivant.
Utilise le nœud de structure et la partie de données int. p>
La fonction addtohead(Node** head, int data) est utilisée pour ajouter des nœuds à la tête et créer une liste chaînée unidirectionnelle.
- Utilisez la fonction ci-dessus pour créer une liste chaînée unidirectionnelle avec la tête comme pointeur vers le premier nœud.
La fonction affichage (tête Node*) permet d'imprimer la liste chaînée depuis le début
Prenez N comme un entier positif.
La fonction findNode(Node* head, int n1) récupère le pointeur vers head et n1, et imprime le résultat lorsque le n1ème nœud du dernier est trouvé.
Prenez l'explosion comme pointeur vers le n1ème nœud du dernier.
Appelez searchNthLast(head, n1, &nlast) pour trouver le nœud.
La fonction searchNthLast(Node* head, int n1, Node** nlast) renvoie un pointeur vers le n1ème dernier nœud à partir de la fin de la liste chaînée, la tête étant le premier nœud.
Utilisez des variables de nombre statique.
- Si head est NULL, rien n'est renvoyé.
Prenez tmp=head->suivant.
Appelez searchNthLast(tmp, n1, nlast) pour parcourir de manière récursive jusqu'au dernier nœud. Après
, le compte augmente de 1.
Si le nombre devient égal à n1, définissez *nlast=head.
Enfin, imprimez la valeur du nœud pointé par nlast comme résultat.
Exemple
#include <bits/stdc++.h> using namespace std; struct Node { int data; Node* next; }; void addtohead(Node** head, int data){ Node* nodex = new Node; nodex->data = data; nodex->next = (*head); (*head) = nodex; } void searchNthLast(Node* head, int n1, Node** nlast){ static int count=0; if (head==NULL){ return; } Node* tmp=head->next; searchNthLast(tmp, n1, nlast); count = count + 1; if (count == n1){ *nlast = head; } } void findNode(Node* head, int n1){ Node* nlast = NULL; searchNthLast(head, n1, &nlast); if (nlast == NULL){ cout << "Node does not exists"; } else{ cout << "Nth Node from the last is: "<< nlast->data; } } void display(Node* head){ Node* curr = head; if (curr != NULL){ cout<<curr->data<<" "; display(curr->next); } } int main(){ Node* head = NULL; addtohead(&head, 20); addtohead(&head, 12); addtohead(&head, 15); addtohead(&head, 8); addtohead(&head, 10); addtohead(&head, 4); addtohead(&head, 5); int N = 2; cout<<"Linked list is :"<<endl; display(head); cout<<endl; findNode(head, N); return 0; }
Copier après la connexionOutput
Si nous exécutons le code ci-dessus, il générera la sortie suivante
Linked list is : 5 4 10 8 15 12 20 Nth Node from the last is: 12
Copier après la connexion
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Étant donné une liste à chaînage unique et un entier positif N en entrée. Le but est de trouver le Nème nœud à partir de la fin de la liste donnée en utilisant la récursivité. Si la liste d'entrée a des nœuds a → b → c → d → e → f et N vaut 4, alors le 4ème nœud du dernier sera c. Nous allons d'abord parcourir jusqu'au dernier nœud de la liste et au retour du nombre d'incréments récursifs (retour en arrière). Lorsque count est égal à N, un pointeur vers le nœud actuel est renvoyé comme résultat. Examinons différents scénarios d'entrée et de sortie pour cela - Entrée - Liste : -1→5→7→12→2→96→33N=3 Sortie − Le Nième nœud du dernier est : 2 Explication − Le troisième nœud est 2 . Entrée - Liste : -12 → 53 → 8 → 19 → 20 → 96 → 33N = 8 Sortie – Le nœud n'existe pas

Une représentation par liste chaînée d'un nombre est fournie comme ceci : Tous les nœuds de la liste chaînée sont considérés comme étant un chiffre du nombre. Les nœuds stockent les nombres de telle sorte que le premier élément de la liste chaînée contienne le chiffre le plus significatif du nombre et que le dernier élément de la liste chaînée contienne le chiffre le moins significatif du nombre. Par exemple, le nombre 202345 est représenté dans la liste chaînée par (2->0->2->3->4->5). Pour ajouter 1 à cette liste chaînée représentant des nombres, il faut vérifier la valeur du bit le moins significatif de la liste. Si c'est moins de 9 c'est ok, sinon le code changera le numéro suivant et ainsi de suite. Voyons maintenant un exemple pour comprendre comment procéder, 1999 est représenté par (1->9->9->9) et l'ajout de 1 devrait le changer.

Présentation de la bibliothèque de structures de données PHPSPL La bibliothèque de structures de données PHPSPL (Standard PHP Library) contient un ensemble de classes et d'interfaces pour stocker et manipuler diverses structures de données. Ces structures de données comprennent des tableaux, des listes chaînées, des piles, des files d'attente et des ensembles, chacun fournissant un ensemble spécifique de méthodes et de propriétés pour manipuler les données. Tableaux En PHP, un tableau est une collection ordonnée qui stocke une séquence d'éléments. La classe de tableau SPL fournit des fonctions améliorées pour les tableaux PHP natifs, notamment le tri, le filtrage et le mappage. Voici un exemple d'utilisation de la classe array SPL : useSplArrayObject;$array=newArrayObject(["foo","bar","baz"]);$array

Comparaison de la complexité temporelle de l'algorithme des tableaux et des listes chaînées : accès aux tableaux O(1), listes chaînées O(n), insertion de tableaux O(1)/O(n) ; ), listes chaînées O(n) (n); Tableau de recherche O(n), liste chaînée O(n).

Une liste chaînée est une structure de données qui utilise une série de nœuds avec des données et des pointeurs pour organiser les éléments, et est particulièrement adaptée au traitement de grands ensembles de données et aux opérations fréquentes d'insertion/suppression. Ses composants de base comprennent des nœuds (données et pointeurs vers le nœud suivant) et des nœuds principaux (pointant vers le premier nœud de la liste chaînée). Les opérations courantes de liste chaînée incluent : l’ajout (insertion de queue), la suppression (valeur spécifique) et le parcours.

En Python, une liste chaînée est une structure de données linéaire composée d'une séquence de nœuds, chaque nœud contenant une valeur et une référence au nœud suivant dans la liste chaînée. Dans cet article, nous verrons comment ajouter des éléments à la première et à la dernière position d'une liste chaînée en Python. LinkedList en Python Une liste chaînée est une structure de données de référence utilisée pour stocker un ensemble d'éléments. D'une certaine manière, cela ressemble à un tableau, mais dans un tableau, les données sont stockées dans des emplacements mémoire contigus, alors que dans une liste chaînée, les données ne sont pas soumises à cette condition. Cela signifie que les données ne sont pas stockées de manière séquentielle mais de manière aléatoire en mémoire. Cela soulève une question : comment pouvons-nous

LinkedList est une structure de données commune, composée d'une série de nœuds. Chaque nœud contient deux attributs clés : un champ de données (Data) et un champ de pointeur (Next). Parmi eux, le champ de données est utilisé pour stocker les données réelles et le champ de pointeur pointe vers le nœud suivant. De cette manière, les listes chaînées stockent les données de manière flexible et adaptée à de nombreux scénarios d'application différents. Dans le langage Go, la structure de liste chaînée est également bien prise en charge. Cont est fourni dans la bibliothèque standard intégrée de Go

Golang est un langage de programmation hautes performances. Ses capacités de concurrence et de gestion de la mémoire le rendent très adapté à l'écriture de structures de données efficaces. La liste chaînée est une structure de données courante. Ce qui suit explique comment utiliser Golang pour écrire une structure de liste chaînée efficace et fournit des exemples de code spécifiques. Une liste chaînée est une structure de données linéaire composée de nœuds, chaque nœud contient une valeur et un pointeur vers le nœud suivant. Par rapport aux tableaux, l’avantage des listes chaînées est que l’insertion et la suppression d’éléments sont plus efficaces car il n’est pas nécessaire de déplacer d’autres éléments. Cependant, la chaîne
