|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: May 2011
Messaggi: 7
|
[C]Problema con funzione di ricerca all'interno di una lista ordinata
Questo è il codice:
Codice:
struct libri
{
char name[MAX_LEN_TITLE];
int next;
}
struct libri *start = 0;
char book[MAX_BOOKS][MAX_LEN_TITLE];
int s = 1;
for(a = start; a; a = a->next, s++)
{
int i = 0;
for(; title[i] != a->title[i]; i++);
if(title[i] == a->title[i])
{
int num = 1;
for(; title[i + num] == a->title[i + num]; num++);
if(num == strlen(title))
{
book[s] = a->title;
}
continue;
}
}
Qualche suggerimento? Ultima modifica di drewus : 02-09-2011 alle 12:29. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Se la lista è ordinata allora avrai sicuramente una relazione d'ordine. Quindi non hai nessun problema. Usi quella relazione d'ordine e hai fatto. E siccome è ordinata puoi usare anche una ricerca binaria.
Inoltre puoi usare la funzione strncmp(char*, char*, size_t N) della libreria string.h per confrontare al massimo N caratteri della stringa http://linux.die.net/man/3/strncmp Ultima modifica di clockover : 02-09-2011 alle 12:22. |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: May 2011
Messaggi: 7
|
RE
Ok, grazie.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:22.



















