Je n'arrive pas à comprendre ce qui ne va pas avec ma fonction d'insertion.Récursivité/listes chaînées
Fondamentalement, dans la fonction principale, je demande à un utilisateur d'entrer un nombre entier, et il doit traverser la liste de manière RECURSIVE et insérer le numéro dans l'ordre. S'il vous plaît laissez-moi savoir si vous avez besoin d'autre chose.
Lorsque j'imprimer la liste, il n'imprime sur 0 deux fois
In the main:
**This is looped**
printf("Enter the value you want to insert: ");
scanf(" %d", &integer);
current = insert(&head, integer);
temp = current;
while(temp)
{
printf("%d\n", temp->num);
temp = temp->next;
}
node* insert(node** head, int integer)
{
node* temp = malloc(sizeof(node));
node* temp1;
node* new;
if(*head == NULL)
{
temp->num = integer;
temp->next = *head;
*head = temp;
}
else if((*head)->num > integer)
{
temp = *head;
temp1 = temp->next; //breaks the link
temp->next = new; //creates a new node
new->num = integer; //adds int
new->next = temp1; //links new node to previously broken node
*head = temp;
}
else
insert(&((*head)->next), integer);
return(temp);
}
Merci beaucoup!
Où définissez-vous la valeur de nouveau? – John3136
Qu'entendez-vous par là? – juice
Y at-il une raison particulière pour laquelle vous voulez faire cela avec récursivité? Cela ne semble pas avoir de sens. – Lundin