Zbiory rozłączne, zwrot wyjątku

0

Witajcie,
Staram się zaimplementować zbiory rozłączne w c++, ale nie mogę rozwiązać problemu ciągle zwracanego wyjątku podczas łączenia zbiorów/sumowania w funkcji union(x,y). Zbiory bazują na znakach (char). Zaimplementowałem własną listę jednokierunkową do pomocy. Główna klasa bazuje na tablicy wskaźników do list jednokierunkowych i na tej tablicy opierają sie metody create-set, find oraz union.
W klasie Disjoint mam takie metody:
void create_set(char x) - tworzę dynamicznie listę, przypisuję do pierwszego wolnego indeksu(wskaźnika) i wkładam element x do listy.
char find_set(char x) - przeszukuję wszystkie zbiory - lece po każdym zbiorze(liście).
void union_set(char x, char y) - najpierw w dwóch pierwszych while'ach sprawdzam w których listach(indeksach w tablicy ze wskaźnikami) znajdują się szukane elementy, zapamiętuję, sprawdzam który ze zbiorów jest większy i do tego dodaję mniejszy.

Teoretycznie tak to wygląda, praktycznie otrzymuję wyjątek wskazany przez Visual Studio w zakomentowanych miejscach w metodzie union.

Kod źródłowy razem z listą i jej plikiem nagłówkowym: http://pastebin.com/s00BtE4m

Bardzo proszę o jakąkolwiek wskazówkę.

1

uzyj debuggera. Powinno Ci pokazac w ktorym miejscu sie wykrzacza (przy dobrym IDE)

a blad masz bo czytasz po za tablica, lub probujesz odczytac pole ktore nie jest zainicjalizowane

1 użytkowników online, w tym zalogowanych: 0, gości: 1