Loop infinito senza errori

di il
6 risposte

Loop infinito senza errori

Buongiorno, non capisco assolutamente il motivo del perchè questo codice fa questo loop infinito, per favore aiutatemi...

#include <iostream>
struct cell
{
 int val;
 cell *next;
};
typedef cell *list;

void insertinOrder(list& l, int x)//inserisce x in ordine nella lista che è già ordinata
{
 cell *aux = new cell;//nuovo elemento da inserire
 aux->val = x;
 
 cell *curr = l;
 cell *prev = nullptr;
 while ((curr != nullptr) && (curr->val <= x))
 {
  curr = curr->next;
  prev = curr;
 }
 aux->next = curr;
 if (curr == l)
  l = aux;
 else 
  prev->next = aux;
}
void headInsert(list& l, int x)//inserisce x in testa alla lista
{
 cell *aux = new cell;
 aux->next = l;
 aux->val = x;
 l = aux;
}
void print(list l)//stampa la lista
{
 cell *curr = l;
 while (curr != nullptr)
 {
  std::cout << curr->val << ' ';
  curr = curr->next;
 }
 std::cout << std::endl;
}
int main()
{
 list l = nullptr;
 headInsert(l, 2);
 headInsert(l, 0);
 insertInOrder(l, 1);
 print(l);
}
Non lo so magari è il mio pc che non funziona più...

6 Risposte

Devi accedere o registrarti per scrivere nel forum
6 risposte