Luc@s
21-09-2003, 14:32
Ho il seguente cod:
#include <iostream>
#include <string>
#include <cmath>
#include <cstdio>
using namespace std;
#ifndef LIST_H
#define LIST_H
// Liste bilaterale
struct lista
{
int data;
lista *next;
lista *prev;
};
void inizializza(lista ls);
lista *aggiungi(lista *ls, int n);
lista *cerca(lista *ls, int index, int mode=0);
void inizializza(lista *ls)
{
ls->data = 0;
ls->next = NULL;
ls->next = NULL;
}
lista *aggiungi(lista *ls, int n)
{
if(ls->prev == NULL){ // primo elemento
lista *tmp = ls;
tmp->data = n;
tmp->prev = ls;
tmp->next = NULL;
ls = tmp;
}
lista *tmp;
tmp->data = n;
tmp->prev = ls;
tmp->next = NULL;
ls->next = tmp;
return ls;
}
lista *cerca(lista *ls, int n, int mode)
{
lista* p = ls;
while( (p->next != NULL) && (p->data != n) ){
p = p->next;
}
return p;
}
#endif
//main.cpp
#include "list.h"
int main( )
{
lista *primo;
inizializza(primo);
aggiungi(primo, 8);
aggiungi(primo, 7);
aggiungi(primo, 6);
lista *trovato = cerca(primo, 3);
cout << "Elemento 3 == " << trovato->data;
cout <<endl;
system( "PAUSE" );
return 0;
}
Ma mi loopa all'infinito :cry:
Come posso risolvere?????
Tnk 10000
#include <iostream>
#include <string>
#include <cmath>
#include <cstdio>
using namespace std;
#ifndef LIST_H
#define LIST_H
// Liste bilaterale
struct lista
{
int data;
lista *next;
lista *prev;
};
void inizializza(lista ls);
lista *aggiungi(lista *ls, int n);
lista *cerca(lista *ls, int index, int mode=0);
void inizializza(lista *ls)
{
ls->data = 0;
ls->next = NULL;
ls->next = NULL;
}
lista *aggiungi(lista *ls, int n)
{
if(ls->prev == NULL){ // primo elemento
lista *tmp = ls;
tmp->data = n;
tmp->prev = ls;
tmp->next = NULL;
ls = tmp;
}
lista *tmp;
tmp->data = n;
tmp->prev = ls;
tmp->next = NULL;
ls->next = tmp;
return ls;
}
lista *cerca(lista *ls, int n, int mode)
{
lista* p = ls;
while( (p->next != NULL) && (p->data != n) ){
p = p->next;
}
return p;
}
#endif
//main.cpp
#include "list.h"
int main( )
{
lista *primo;
inizializza(primo);
aggiungi(primo, 8);
aggiungi(primo, 7);
aggiungi(primo, 6);
lista *trovato = cerca(primo, 3);
cout << "Elemento 3 == " << trovato->data;
cout <<endl;
system( "PAUSE" );
return 0;
}
Ma mi loopa all'infinito :cry:
Come posso risolvere?????
Tnk 10000