2017-10-05 22 views
-2

Exemple # 1Différence entre curr_node.ptr = & (next_node.ptr); et curr_node.ptr = & next_node

#include <stdio.h> 

struct node{ 
    struct node *next; 
    char *data; 
}; 

struct node *reverse_list(struct node *head) 
{ 
    struct node *curr, *prev, *next; 
    curr = head; 
    prev = NULL; 
    next = curr->next; 
    while(curr != NULL){ 
     next = curr->next; 
     curr->next = prev; 
     prev = curr; 
     curr = next; 
    } 
    return prev; 
} 

int main(){ 
    struct node *reverse_list(); 
    return 0; 
} 

Ma compréhension:

Ce code décrivent un lien que chaque pointeur à la valeur de nœud suivant (ou le début du nœud), d'une certaine manière, il est un structure basique et simple. Mais que se passe-t-il si nous voulons que tous les pointeurs pointent vers le pointeur suivant, puis l'inversent? Le processus semble complexe lorsque nous voulons l'inverser lorsque tout le pointeur pointe vers le pointeur.

C'est,

curr_node.ptr = & (next_node.ptr);

PAS: curr_node.ptr = & next_node

Répondre

1

curr_node.ptr = &(next_node.ptr) obtient le ptr dans des adresse next_node wherease curr_node.ptr = &next_node obtient l'adresse de next_node

Si vous cherchez à revenir sur votre liste chaînée, google juste ce qui suit

Comment inverser une liste chaînée en C

ou

rev_list.c sur quelque chose comme github que.

Espérons que cela a aidé.

Nicolas

+0

Je l'ai essayé, mais je me suis aperçu qu'il ya quelques détails lorsque je tente de mettre en œuvre la fonction inverse dans une ptr 2 liste chaînée ptr. Connaissez-vous un exemple de code de cela? thx –

+0

[my_rev_list.c] (http://xf.iksaif.net/epitech/.rendu/piscine/Jour_11/my_rev_list.c) –