ragazzi ho un problema con l'algoritmo list_ordered_insert, al momento che mi chiede di inserire un elemento nella lista ordinata, il programma smette di funzionare ed esce dall'eseguibile, qual'è il problema? proprio non capisco.
codice:#include<iostream> using namespace std; typedef struct nodo {int info; nodo *link; }list; void create(list *&head,list *&prev,int elem); void stampa(list *head); void insert(list *&head,list *&prev,int elem); int main() { list *head=NULL,*prev=NULL; int elem; char scelta; do {cout<<"\n Inserisci elemento in lista "; cin>>elem; create(head,prev,elem); cout<<"\n Vuoi inserire un altro elemento ? (Y/N) "; cin>>scelta; } while((scelta=='y')||(scelta=='Y')); cout<<"\n La lista da te inserita è : "; stampa(head); system("PAUSE"); cout<<"\n Inserisci un elemento nella lista ordinata "; cin>>elem; prev=head; insert(head,prev,elem); cout<<"\n La lista modificata è : "; stampa(head); system("PAUSE"); return 0; } void create(list *&head,list *&prev,int elem) {list *new_node; new_node=new list; new_node->info=elem; new_node->link=NULL; if(head==NULL) {head=new_node; prev=head;} else {prev->link=new_node; prev=new_node; } } void stampa(list *head) {while(head!=NULL) {cout<<head->info; cout<<" "; head=head->link; } } void insert(list *&head,list *&prev,int elem) { list *temp,*new_node; temp=prev->link; new_node=new list; new_node->info=elem; new_node->link=NULL; if(temp=NULL) prev->link=new_node; else {if(elem<head->info) {new_node->link=head; head=new_node; } else {if(elem<temp->info) {new_node->link=temp; prev->link=new_node; } else insert(head,temp,elem); } } return; }

Rispondi quotando