Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - ricerca su adt coda
Forum - C/C++ - ricerca su adt coda

Avatar
femia89 (Normal User)
Newbie


Messaggi: 6
Iscritto: 09/01/2007

Segnala al moderatore
Postato alle 14:46
Martedì, 09/01/2007
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 il 09/01/2007 alle 14:47
PM Quote
Avatar
femia89 (Normal User)
Newbie


Messaggi: 6
Iscritto: 09/01/2007

Segnala al moderatore
Postato alle 14:57
Martedì, 09/01/2007
Se volete vi faccio vedere tutto il programma cosi capite meglio fatemi sapere per favore...grazie ancora

Ultima modifica effettuata da femia89 il 09/01/2007 alle 15:00
PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 16:10
Martedì, 09/01/2007
su wikipedia mostrano questo come esempio:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>   /* per printf */
  2. #include <stdlib.h>  /* per malloc */
  3.  
  4. typedef struct ns {
  5.         int data;
  6.         struct ns *next;
  7. } node;
  8.  
  9. node *list_add(node **p, int i) {
  10.     node *n = malloc(sizeof(node));
  11.     n->next = *p;
  12.     *p = n;
  13.     n->data = i;
  14.     return n;
  15. }
  16.  
  17. void list_remove(node **p) { /* rimuove head */
  18.     if (*p != NULL) {
  19.         node *n = *p;
  20.         *p = (*p)->next;
  21.         free(n);
  22.     }
  23. }
  24. [b]
  25. node **list_search(node **n, int i) {
  26.     while (*n != NULL) {
  27.         if ((*n)->data == i) {
  28.             return n;
  29.         }
  30.         n = &(*n)->next;
  31.     }
  32.     return NULL;
  33. }
  34. [/b]
  35. void list_print(node *n) {
  36.     if (n == NULL) {
  37.         printf("la lista è vuota\n");
  38.     }
  39.     while (n != NULL) {
  40.         printf("print %p %p %d\n", n, n->next, n->data);
  41.         n = n->next;
  42.     }
  43. }
  44.  
  45. int main(void) {
  46.     node *n = NULL;
  47.  
  48.     list_add(&n, 0); /* lista: 0 */
  49.     list_add(&n, 1); /* lista: 1 0 */
  50.     list_add(&n, 2); /* lista: 2 1 0 */
  51.     list_add(&n, 3); /* lista: 3 2 1 0 */
  52.     list_add(&n, 4); /* lista: 4 3 2 1 0 */
  53.     list_print(n);
  54.     list_remove(&n);            /* rimuove il primo elemento (4) */
  55.     list_remove(&n->next);      /* rimuove il nuovo secondo (2) */
  56.     list_remove(list_search(&n, 1)); /* rimuove la cella che contiene 1 (primo) */
  57.     list_remove(&n->next);      /* rimuove il successivo (0) */
  58.     list_remove(&n);            /* rimuove l'ultimo (3) */
  59.     list_print(n);
  60.  
  61.     return 0;
  62. }


PM Quote
Avatar
femia89 (Normal User)
Newbie


Messaggi: 6
Iscritto: 09/01/2007

Segnala al moderatore
Postato alle 8:18
Giovedì, 11/01/2007
Si però questo codice è riferito a una lista....io sto cercando la ruicerca su una coda...aspetto risposte...grazie mille cmq
http://femia89.altervista.org

Ultima modifica effettuata da femia89 il 15/07/2007 alle 12:17
PM Quote