Zasada podstawienia Liskov

0

Hej, odczytuje dane z pliku, na które składają się wyrażenia (liczby i operatory) w różnych notacjach, chciałabym utworzyć drzewo binarne na podstawie pobieranych danych i odczytywać odpowiednio wyrażenia w celu otrzymania końcowego wyniku jednakże nie chce łamać zasady liskov i sprawdzać dokładnej klasy obiektu (czy liczba czy operator). Moje pytanie czy jeżeli w polach tych dwóch klas wprowadzę dodatkową zmienną np. priorytet i ustawie dla klasy liczba, np. priorytet=1 dla klasy operator priorytet=0 i będę porównywać ich priorytety za pomocą geta to również złamię zasadę liskov?
Z góry dzięki za odpowiedź!

0

Przecież, nie Masz na wejściu żadnych liczb czy operatorów, tylko stringi.

0

na podstawie tego co będzie w stringu chce rozdzielić wyrażenie na jakąś liczbę i operator i utworzyć obiekty tych dwóch klas i później obiekty te przechowywać w liście i z listy zbudować drzewo

0

Rozumiem, ale można też przyjąć wszystko, jako string i parsować w drzewo na podstwaie porównania, jeśli jest to nawias lewy (if token == '(': make_left_node()) i tak dalej, wtedy problem znika; a rozróznia się dopiero w momencie ewaluowania wyrażenia. Poza tym, wyrażenia w postaci ONP nie parsuje się w drzewo.

0

hmm tylko w notacji ONP nie mam w ogóle nawiasów, czyli najpierw byś wpisywał jak leci a dopiero po zamianie na wyrażenie z nawiasami parsował w drzewo? Z tego co się orientowałam to częstszą strukturą jest stos aczkolwiek chciałabym to zrobić na drzewie ;D

0

Acha, chyba nie zrozumiałem dokładnie. Chcesz odczytać wyrażenia, już będące w odpowiednich notacjach, (infixowa, ONP,...) przechować je w drzewach, a potem je z nich wyciągać w celu dalszej obróbki; to nie ma problemu, Utwórz sobie odpowiednie drzewka przechowujące ciągi stringów, np.:
TreeContainer * onp_tree = new TreeContainer...
Wszystkie będą jednego typu, a potem, w zależności, dalsza obróbka. Jakoś tak bym to widział:
Klasa Reader, na przykład, korzystająca z TreeContainer do czytania i przechowywania, potem Parser i Eval (Przy czym akurat parser z wyrażeniem w ONP, nie będzie miał za dużo roboty:)).

0

Bardzo, bardzo dziękuję za odpowiedź!

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