Oppure

Loading
09/01/07 13:46
femia89
Salve..sono nuovo...stavo facendo una ricerca sulla coda una struttura dati astratta…ho fatto la creazione di elementi,eliminazione…ecc..ma non riesco proprio a fare la ricerca…
Questo è lo struct :

struct nodo
{
int info;
nodo *next;
};

struct coda
{
nodo *testa;
nodo *fondo;
};
..qualcuno riesce a darmi una dritta?
Aspetto risposte…
Grazie
Ultima modifica effettuata da femia89 09/01/07 13:47
aaa
09/01/07 13:57
femia89
Se volete vi faccio vedere tutto il programma cosi capite meglio fatemi sapere per favore...grazie ancora
Ultima modifica effettuata da femia89 09/01/07 14:00
aaa
09/01/07 15:10
netarrow
su wikipedia mostrano questo come esempio:

#include <stdio.h>   /* per printf */
#include <stdlib.h>  /* per malloc */

typedef struct ns {
        int data;
        struct ns *next;
} node;

node *list_add(node **p, int i) {
    node *n = malloc(sizeof(node));
    n->next = *p;
    *p = n;
    n->data = i;
    return n;
}

void list_remove(node **p) { /* rimuove head */
    if (*p != NULL) {
        node *n = *p;
        *p = (*p)->next;
        free(n);
    }
}
[b]
node **list_search(node **n, int i) {
    while (*n != NULL) {
        if ((*n)->data == i) {
            return n;
        }
        n = &(*n)->next;
    }
    return NULL;
}
[/b]
void list_print(node *n) {
    if (n == NULL) {
        printf("la lista è vuota\n");
    }
    while (n != NULL) {
        printf("print %p %p %d\n", n, n->next, n->data);
        n = n->next;
    }
}

int main(void) {
    node *n = NULL;

    list_add(&n, 0); /* lista: 0 */
    list_add(&n, 1); /* lista: 1 0 */
    list_add(&n, 2); /* lista: 2 1 0 */
    list_add(&n, 3); /* lista: 3 2 1 0 */
    list_add(&n, 4); /* lista: 4 3 2 1 0 */
    list_print(n);
    list_remove(&n);            /* rimuove il primo elemento (4) */
    list_remove(&n->next);      /* rimuove il nuovo secondo (2) */
    list_remove(list_search(&n, 1)); /* rimuove la cella che contiene 1 (primo) */
    list_remove(&n->next);      /* rimuove il successivo (0) */
    list_remove(&n);            /* rimuove l'ultimo (3) */
    list_print(n);

    return 0;
}
aaa
11/01/07 7:18
femia89
Si però questo codice è riferito a una lista....io sto cercando la ruicerca su una coda...aspetto risposte...grazie mille cmq
femia89.altervista.org
Ultima modifica effettuata da femia89 15/07/07 10:17
aaa