Zadatak iz strukture podataka i algoritmi

poruka: 4
|
čitano: 2.026
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
12 godina
neaktivan
offline
Zadatak iz strukture podataka i algoritmi

Nadam se da postoji netko tko zna riješiti ovaj zadatak ili bar ga postaviti

Implementirajte a.t.p. QUEUE pomoću vezane liste. Vezana lista je implementirana pomoću pointera. Nadalje napravite algoritam za pronalaženje skupa svih čvorova neusmjerenog grafa do kojih se može doći iz vrha 1. Neusmjereni graf implementirajte kao (simetričnu)
matricu nula i jedinica (pretpostavimo da su vrhovi numerirani 1, 2, ..., n). Zadatak se rješava u C-u.

 
0 0 hvala 0
12 godina
neaktivan
offline
Zadatak iz strukture podataka i algoritmi

Nastavak je zadatka

Ulazni podaci: broj vrhova grafa (n); u idućem redu prvo broj susjeda vrha 1, pa zatim popis tih susjeda; u idućem redu prvo broj susjeda vrha 2, pa zatim popis tih susjeda, itd.
Izlazni podaci: popis svih vrhova do kojih se može doći iz vrha 1

 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Zadatak iz strukture podataka i algoritmi

Prvo moraš znati kako napisati osnovne funkcije (dodaj, skini) za red (queue) realiziran listom. Npr. neka postoji neka struktura;

 

struct zapis {
    int element;
    struct zapis *sljed;
};
typedef struct zapis lista;

 

U funkciji main napraviš pokazivač na glavu i rep liste, a zatim adrese tih pokazivača (pokazivač na pokazivač) predaješ funkcijama "dodaj" i "skini";

 

int dodaj(lista **ulaz, lista **izlaz, int element) {
    lista *ubaci;
    if((ubaci = (lista*)malloc(sizeof(lista)))!=NULL) {
        ubaci->element = element;
        ubaci->sljed = NULL;
        if(*izlaz == NULL) *izlaz = ubaci;
           else (*ulaz)->sljed = ubaci;
        *ulaz = ubaci;
        return 1;
    }
    return 0;
}

 

int skini(lista **ulaz, lista **izlaz, int *element) {
    lista *temp;
    if(*izlaz) {
       *element = (*izlaz)->element;
       temp = *izlaz;
       *izlaz = (*izlaz)->sljed;
       free(temp);
       if(*izlaz == NULL) *ulaz = NULL;
       return 1;
    }
    return 0;
}   

 

Ovo ti je dosta za početak. A ti sada smisli logiku programa i kako ćeš realizirati ono što se traži u zadatku.

Kada lajavci laju onda završe ovako: http://i471.photobucket.com/albums/rr77/toropreto/2012-07-0813_30_07.gif
Poruka je uređivana zadnji put ned 28.10.2012 20:41 (TracerCPP).
12 godina
neaktivan
offline
Zadatak iz strukture podataka i algoritmi

hvala na pomoći

 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice