[C++] Lista jednokierunkowa - tworzenie, sortowanie itp

Leogict
Użytkownik
Użytkownik
Posty: 40
Rejestracja: 21 mar 2008, o 20:01
Płeć: Mężczyzna
Podziękował: 14 razy

[C++] Lista jednokierunkowa - tworzenie, sortowanie itp

Post autor: Leogict »

Witam, napisałem program tworzący listę jednokierunkową, sortujący ją, usuwający wielokrotności liczby 5, mający opcję dodawanie elementów (na początku listy wewnątrz i na końcu) oraz usuwanie elementów (na początku, wewnątrz i na końcu).

Elementy listy posiadają wartości wg wzoru (i^2)%50, gdzie i jest jakby indeksem elementu.

Będę wdzięczny za wszelkie opinie, uwagi, wskazówki i co byście dodali, zmienili, napisali inaczej, z góry dziękuję.

Kod: Zaznacz cały

http://wklej.org/id/227107/
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

[C++] Lista jednokierunkowa - tworzenie, sortowanie itp

Post autor: soku11 »

Moje spostrzeżenia (kodu nie kompilowałem ani nie testowałem):
1. Jest to napisane w stylu C, a nie C++. Z łatwością mógłbyś sobie zamiast klasy element napisać strukturę element i przekompilować pod gcc.
2. Te funkcje odnoszące się tylko do listy aż się proszą o umiejscowienie w oddzielnej klasie Lista. Analogicznie jak zmienne typu start,koniec. Tak każdy sobie je może modyfikować.
3. Używanie zmiennych globalnych. A jeszcze gorzej - używanie zmiennych globalnych do trzymania zmiennych pomocniczych!
4. Po co stosujesz aż 3 funkcje do dodawania? Przecież to jest raczej nieistotne gdzie to ma być dodawane? Jeśli już, to wystarczy udostępnić tylko funkcje dodawania na początek i na koniec.
5. Robisz od razu listę tylko dla 50 elementów. A co jeśli potrzebujesz tylko na początku tylko 10?
6. Sortowania nie sprawdzam, bo nakombinowane. Mogę tylko powiedzieć, że zamiast bawić się w przepinanie wartości łatwiej jest zamienić wartości w węzłach... I dlaczego sortowanie oprócz sortowania wyświetla listę?
7. Ogólnie jakieś niezaplanowane to wszystko. W funkcjach do dodawania używasz cin i cout. Funkcje powinny robić jedną określoną rzecz.
8. W funkcji usunWewnatrz jak się poda zły warunek, to pyta się jeszcze raz i zakłada, że tym razem jest ok. A jak nie będzie?
9. Strasznie to nieuniwersalne. Pomijam samo użycie szablonów, ale ogólnie listy. A co, jeśli chcesz w niej przetrzymywać wartości i*i*i? Nie wiem nawet jaki to ma interfejs (jeśli w ogóle ma)...

To tak z grubsza.
Pozdrawiam.
ODPOWIEDZ