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ù...