Potrzebuje kilku rad odmośnie mojego programu zaliczeniowego. Na początek treść zadania żeby było wiadomo o co chodzi.
Dany jest graf o max. 20 wierzchołkach etykietowanych kolejnymi literami. Z każdego wierzchołka wychodzą dokładnie dwie krawędzie etykietowane kolejnymi liczbami całkowitymi. Podać ciąg krawędzi, dla którego dany jest ciąg etykiet wierzchołków.
Np. wprowadzając wejściowy ciąg znaków:
DEFCHABGFH
powinna być wygenerowana lista krawędzi:
7, 9, 12, 6, 5, 1, 4, 14, 11
Należy wykrywać niepoprawne ciągi wejściowe.
No dobra, mam graf np. z 8 wierzchołkami a tablica wygląda tak:
A B C D E F G H
A 0 0 0 0 10 0 0 15
B 1 0 0 0 0 0 0 0
C 0 3 0 0 0 12 0 0
D 2 0 5 0 0 0 0 16
E 0 0 0 7 0 0 0 0
F 0 0 0 0 9 0 14 0
G 0 4 0 8 0 0 0 0
H 0 0 6 0 0 11 13 0
Wiem można dostać oczopląsu a to dopiero tablica [8][8], deklaruje tablicę w ten sposób:
#include <stdio.h>
int main(void)
{
int myArray[8][8] = { {0, 0, 0, 0, 10, 0, 0, 15},
{1, 0, 0, 0, 0, 0, 0, 0,},
{0, 3, 0, 0, 0, 12, 0, 0},
{2, 0, 5, 0, 0, 0, 0, 16},
{0, 0, 0, 7, 0, 0, 0, 0},
{0, 0, 0, 0, 9, 0, 14, 0},
{0, 4, 0, 8, 0, 0, 0, 0},
{0, 0, 6, 0, 0, 11, 13, 0} };
Zera oznaczają niestniejące połączenia między wierzhołkami a cyfry numery wektorów, czyli np.
wierzchołek A jest połączony z B wektorem o num. 1, C z D to 7 a F z C to 12 itd.
Moje pytanie: co ja mam teraz zrobić, jakich funkcji użyć żeby wpisując nazy wierzchołków np. ADGF itd. wypisało mi numery wektorów łączących te punkty, w tym przykładzie A z D, D z G, G z F, a dla nieistniejący połączeń wypisywałby np. "BŁĄD" albo coś innego.
Siedze nad tym od tygodnia jak nie dłużej i nie wiem co z tym zrobić ;(
Czy ja dobrze deklaruję tą tablice? Czy to może tak wyglądać?
Program musze napisać w C nie C++, do tego pod Linuxa i skompilować w gcc.
Pozdrawiam.