Ten projekt zawiera implementację różnych zadań w języku C++. Kod obejmuje następujące funkcjonalności:
- Klasa
Tablica
reprezentuje dwuwymiarową tablicę dynamiczną. - Pozwala na losowe wypełnienie tablicy, wyświetlenie jej zawartości i znalezienie maksymalnej wartości.
- Funkcje
addStringElement
,saveStringToFile
,loadStringFromFile
,saveStringToBinaryFile
iloadStringFromBinaryFile
umożliwiają zarządzanie tablicą stringów. - Pozwalają na dodawanie, zapisywanie i wczytywanie tablicy stringów do/z pliku tekstowego oraz zapisywanie i wczytywanie do/z pliku binarnego.
- Funkcje
potega
isilnia
obliczają odpowiednio potęgę i silnię liczby. - Funkcja
jestPal
sprawdza, czy dany tekst jest palindromem.
- Funkcja
permutuj
generuje wszystkie permutacje danego tekstu i sprawdza, czy są palindromami. - Funkcje
usunDup
iwyswpal
służą do usuwania duplikatów palindromów i wyświetlania wyników.
- Zaimplementowane są dwie struktury danych: lista jednokierunkowa (
ListaJ
) i kolejka (Kolejka
). - Struktura
ListF
zawiera funkcje do zarządzania listą jednokierunkową, takie jak dodawanie, usuwanie elementów oraz wyświetlanie zawartości. - Struktura
Kolejka
reprezentuje kolejkę i posiada funkcje dodawania, usuwania elementów oraz wyświetlania zawartości.
- Skompiluj kod za pomocą kompilatora C++.
- Uruchom program, który demonstruje działanie każdej z implementacji.
Ten kod C++ zawiera trzy algorytmy sortowania dla wektora obiektów MovieData
opartych na ich zmiennej averageRating
. Trzy algorytmy sortowania zawarte w kodzie to:
- Quick Sort (Szybkie Sortowanie)
- Merge Sort (Sortowanie Przez Scalanie)
- Bucket Sort (Sortowanie Kubkowe)
Funkcja quickSort
implementuje algorytm Szybkiego Sortowania. Wybiera element osiowy (tzw. "pivot") i dzieli wektor na dwie podtablice: jedną zawierającą elementy mniejsze od pivota, a drugą zawierającą elementy większe od pivota. Następnie rekurencyjnie sortuje te podtablice.
Funkcja mergeSort
implementuje algorytm Sortowania Przez Scalanie. Dzieli wektor na dwie połowy, rekurencyjnie sortuje je, a następnie scala posortowane połowy, aby uzyskać ostatecznie posortowany wektor.
Funkcja bucketSort
implementuje algorytm Sortowania Kubkowego. Określa ona minimalną i maksymalną wartość zmiennej averageRating
w wektorze, tworzy kubełki dla każdej różnej wartości oceny i rozdziela obiekty MovieData
do tych kubełków. Następnie scala te kubełki, aby uzyskać posortowany wektor.