Hej, jestem absolutnie zielona, a mam na uczelnię napisać program, który wyświetla reprezentację grafu w postaci listy sąsiedztwa oraz implementuje metody:
first (v: int): int – zwraca indeks pierwszego sąsiada v
next (v: int; i: int): int – zwraca indeks następnego po i-tym sąsiada v
vertex (v: int; i: int): wsk – zwraca wskaźnik do sąsiada v o indeksie i
dla podanego na wejściu wierzchołka mam zademonstrować działanie tych metod.
no i rpoblem mam durny. bo implementowaliśmy te funkcje na tablicy zajęciach i je przepisałam, ale teraz nie wiem, jak zademonstrować ich działanie (wiem, jestem totalnym noobem).
Oto implementacja z zajęć:
// funkcja zwracajaca wartosc pierwszego sasiada wierzcholka 'v'
int first( int v ) {
if( v >= ncount ) {//indeks poza zakresem
return -1;
} else {
if( lista[v]->head != NULL ) {//jesli lista pusta to zwroc -1
return lista[v]->head->data;
} else {
return -1; // w p.p. zwroc wartosc
}
}
}
//funkcja zwracajaca wartosc nastepnego po n-tym sasiada wierzcholka 'v'
int next( int v, int n ) {
if( v >= ncount ) {//indeks poza zakresem
return -1;
} else {
Node* tmp = lista[v]->head;
while( tmp != NULL && n > 0 ) {
tmp = tmp->next;
--n;
}
if( tmp != NULL )//jesli istnieje taki sasiad to wyswietlamy jego indeks
return tmp->data;
return -1; //jezeli nie istnieje to -1
}
}
//funkcja zwracajaca wskaznik do sasiada wierzcholka 'v' o wartosci 'n'
Node* vertex( int v, int n ) {
if( v >= ncount ) {//jesli indeks poza zakresem zwroc null
return NULL;
} else {
Node* tmp = lista[v]->head;
while( tmp ) {
if( tmp->data == n )//jesli jest taki sasiad to zwracamy wskaznik
return tmp;
tmp = tmp->next;
}
return NULL; //jesli nie ma to null
}
}
No i teraz nie wiem, co ma być w funkcji main. Bardzo proszę o pomoc!