Wdrożenie tabeli skrótów w C ++

Wdrożenie tabeli skrótów w C ++
Jeśli kiedykolwiek pracowałeś w środowisku Pythona, musisz wiedzieć o użyciu obiektu „słownik”, który zawiera w nim parę kluczowej wartości. Podobnie jak słowniki, C ++ wymyślił koncepcję pary wartości kluczowej. Ta para będzie przechowywana w tabeli skrótów struktury danych C++. Tabela skrótów struktury danych będzie używać funkcji skrótu do obliczenia indeksu tablicy do wstawienia wartości do tabeli za pomocą indeksów i ich wyszukiwania.

W ramach tego przewodnika omówimy zastosowanie metod tworzenia, dodawania, usuwania, wyszukiwania wartości z tabel skrótu za pomocą niektórych jego funkcji.

Zacznijmy od logowania z Linux. Spróbuj wykonać plik C ++ za pomocą instrukcji „dotyk” w powładzie i skorzystaj z dowolnego dostępnego wbudowanego edytora z systemu Linux, aby go otworzyć (i.mi. GNU Nano).

Przykład: Tabela hash

Zobaczysz, że pusty plik jest otwarty na ekranie terminalu Linux. W ramach tego pliku musimy dołączyć niektóre z głównych i niezbędnych bibliotek C ++, aby nasz kod był wykonywany po użyciu różnych pojęć.

Dodaliśmy więc „iostream” do wykorzystania wejściowych i wyjściowych w skrypcie za pośrednictwem obiektów CIN i COUT. Biblioteka ciągów została użyta do korzystania z wartości ciągów w naszym kodzie. Biblioteka „CSTDLIB” i „CSTDIO” została wykorzystana do uzyskania standardowego znaku i wartości wejściowych do użycia tabel skrótów. Przed użyciem jakiejkolwiek funkcji lub klasy zadeklarowaliśmy standardową „przestrzeń nazw” w kodzie, a następnie zainicjowaliśmy stałą zmienną całkowitą „T_S” dla rozmiaru tabeli HASH, aby uzyskać 200 rekordów.

HashtableEntry klasy ma tutaj zainicjowanie wartości pary wartości kluczowej tabeli, uzyskując wartość jako dane wejściowe od użytkownika. Funkcja konstruktora HashtableEntry () zostanie do tego wykorzystana.

Nadchodzi inna klasa „Hashmaptable”, deklarującym prywatny obiekt wskaźnika „TB” dla klasy „HashtableEntry”.

Tworzenie obiektu „skrót” w funkcji Main (. Ten konstruktor służy do konstruowania tabeli typu pary wartości kluczowej o rozmiarze „t_s” i.mi. 200.

Aby skonstruować tabelę wartości kluczowej o rozmiarze 200, użyliśmy pętli „for” do rozmiaru 200 inicjalizującego każdego indeksu do null.

Ta funkcja obliczy moduł klucza „A” i rozmiar tabeli „T_S” i zwróci ją.

Jeśli użytkownik wybierze opcję „1”, funkcja „wejścia” zostanie wykonana po uzyskaniu pary wartości klucza od użytkownika. Funkcja „hashfunc” zostanie wywołana przez przekazanie jej wartości „a”. Zwracany moduł zostanie zapisany do zmiennej „H”. Ten „H” będzie używany jako numer indeksu dla tabeli „TB” w pętli While.

Jeśli konkretna wartość indeksu tabeli nie jest zerowa, a wskaźnik tabeli „H” dla klucza „a” nie jest równy klucze „a”, zostanie ponownie nazywana hashfunc (), aby obliczyć moduł i zapisać wynik do ” H". Jeśli konkretny wskaźnik tabeli nie jest zerowy, usuniemy tę konkretną wartość z tabeli i wygenerujemy nowy wpis wartości klucza.

Funkcja SearchKey () przyjmie klucz, sprawdź moduł i wyszukuj wartość w indeksie tabeli. Jeśli wartość przy indeksie „H” jest null, zwróci -1 w przeciwnym razie zwróci się wartość „b” określonego indeksu „h” z tabeli.

Funkcja delete () przyjmie klucz i określoną wartość dla tego klucza. Usuń wartość, jeśli określony indeks nie jest pusty i wyświetl komunikat sukcesu za pomocą instrukcji Cout.

Destruktor służy do usunięcia całego stolika do skrótu.

Po uruchomieniu metody main () utworzyliśmy obiekt „skrót” dla klasy, którą można skontaktować. Z powodu tworzenia obiektów konstruktor zostanie wywołany i zostanie utworzony tabela. Następnie zainicjowaliśmy 2 zmienne całkowite A, B i C. Używamy reprezentacji menu dla użytkownika do tworzenia tabeli, wstawienia, usuwania i wyświetlania rekordów wybierania opcji.

Tak więc pętla while () będzie kontynuowana do momentu wyjścia użytkownika. Używamy standardowych instrukcji wyjściowych Cout, aby utworzyć menu i.mi. Wybierz 1, aby wprowadzić wartość, 2 do wyszukiwania, 3 do usunięcia i 4 do wyjścia. Użytkownik został poproszony o wybranie opcji, a instrukcja CIN jest używana do uzyskania danych wejściowych (1,2,3,4) w zmiennej „C” od użytkownika.

Teraz pojawia się instrukcja przełącznika przy użyciu zmiennej „C” jako wartości opcji do odpowiedniego działania.

Teraz, jeśli użytkownik naciśnie 1 jako opcję, przypadek 1 przełącznika zostanie wykonany. Wykonuje niektóre instrukcje Cout i poprosi Cię o najpierw wprowadzenie klucza, a następnie wartość pary dla konkretnego klucza za pomocą instrukcji CIN i zapisując wejście wartości klucza do zmiennych „A” i „B”. Funkcja „wejścia” zostanie wywołana przy użyciu obiektu „skrót”, a zmienna „A”, „B” zostanie przekazana do niej.

Jeśli użytkownik wybierze 2, sprawa 2 zostanie wykonana i poprosi użytkownika o wprowadzenie klucza lub wyszukiwanie. „CIN” otrzyma klucz od użytkownika, aby umieścić zmienną „A”. Instrukcja „Jeśli” wywoła metodę „SearchKey ()” za pomocą obiektu „skrót”.

Jeśli nie znajdziemy żadnego klucza z tabeli I.mi. „-1” wyświetlimy komunikat „Brak wartości znalezionej w kluczu A”. W przeciwnym razie wyświetlimy klucz i jego specyficzną wartość zwróconą przez funkcję „SearchKey”.

Wybierając opcję 3, użytkownik zostanie poproszony o wprowadzenie klucza w celu usunięcia go z tabeli. Funkcja „delete ()” zostanie wykonana.

Jeśli użytkownik wybierze opcję 4, program wyjdzie.

Teraz nadszedł czas, aby skompilować ten kod z specjalnym kompilatorem „G ++” Ubuntu dla plików C ++.

Kompilacja zakończyła się sukcesem i wykonaliśmy ją za pomocą „./A.Zapytanie out. Wyświetlono 4 menu opcji, a użytkownik został poproszony o wprowadzenie swojego wyboru (1,2,3,4). Użytkownik dodał 1, aby wstawić wartość w tabeli skrótu. Użytkownik wprowadził klucz i jego wartość dla tabeli. Ten rekord został pomyślnie wstawiony, a menu zostało ponownie wyświetlone.

Użytkownik wprowadził „2” jako opcję wyszukiwania określonej wartości klucza. W zamian otrzymaliśmy wartość „14” dla klucza 1 w tabeli skrótów. Menu opcji zostanie wyświetlone ponownie.

Tym razem użytkownik wybiera opcję 3, aby usunąć już zatrzymaną wartość z tabeli skrótu za pomocą jej klucza. Tak więc użytkownik został poproszony o wprowadzenie klucza, dla którego chcesz usunąć wartość (i.mi. 1). System wyświetli wiadomość, że określony element został usunięty.

Ponownie menu zostało wyświetlone. Użytkownik wybrał opcję 4 do wyjścia z programu.

Wniosek

W tym artykule dotyczy tworzenia tabeli skrótów za pomocą kodu C ++ w Ubuntu 20.04 System. Oprócz tego odkryliśmy również metody wstawienia pary wartości kluczowej do tabeli skrótów, wyświetlaj określoną parę wartości klucza, usuń określoną parę wartości klucza i wyjdź z kodu. Użyliśmy menu, aby uczynić to, a instrukcje przełącznika do wyboru opcji.