Jak odwrócić powiązaną listę w C

Jak odwrócić powiązaną listę w C
Połączona lista została zdefiniowana jako zestaw węzłów typu struktury, który zawiera niektóre dane. Ten przewodnik pokaże, w jaki sposób połączona lista może zostać odwrócona w języku C za pomocą Ubuntu 20.04 System. Zacznijmy od dodania kilku przykładów. Użytkownik musi otworzyć konsolę terminalową na Ubuntu 20.04 Desktop do pracy nad językiem C. Aby go otworzyć, użyliśmy polecenia klawisza skrótu „Ctrl+alt+t”. Innym sposobem na uruchomienie go na pulpicie Ubuntu jest opcja działania na komputerze stacjonarnym.

Przykład 01

W miarę uruchamiania aplikacji terminalowej utwórz nowy plik C. Musimy użyć najczęściej używanej zapytania „dotyk” w terminalu, jak pokazano poniżej.

$ Touch Reverse.C

Teraz plik C został utworzony, otwórz go z dowolnym edytorem już zainstalowanym i skonfigurowanym w systemie Linux. Używamy edytora „Nano” do otwarcia i edytowania pliku C.

$ nano reverse.C

Teraz plik został pokazany w Edytorze GNU Nano. Najpierw dołączyliśmy niektóre biblioteki, aby kod był wykonywany w terminalu i przez kompilator. Połączony węzeł listy został skonstruowany jako typ struktury, składa się ze zmiennej informacji o węźle i tworzeniu następnego węzła. Metoda „odwrotna” została zdefiniowana dla odwrócenia listy połączonej. Konstruuje wskaźnik zapisywania adresów dla poprzedniego węzła, bieżącego lub głównego węzła i następnego węzła. Podczas gdy węzeł głowy jest zerowy, służy do uczynienia go następnym lub bieżącym węzłem. Dokonano tego za pomocą dotychczasowych wskazówek.

Funkcja „Push” została utworzona w celu wypychania danych do węzłów. Utworzył nowy węzeł i przypisał mu pamięć metodą „Malloc”. Dane zostały przypisane do nowego węzła, przekazując argumenty w parametrach za pomocą odniesień do węzła głowy. Metoda show () została tutaj użyta do wyświetlania informacji użytkownika funkcji push w węzłach.

Zdefiniowaliśmy główną metodę wykonywania kodu. Węzeł początkowy został zdefiniowany jako null. Następnie naciskaliśmy wartości w węźle głównym za pomocą wskaźnika. Następnie wywołano tutaj metodę show (), aby wyświetlić wiadomości. Następnie wywołano tutaj metodę odwrotną (), aby odwrócić wartość połączonej listy poprzez powiązanie wskaźnika nagłówka wskazanego przez węzeł. Ponownie wywołano metodę show (), aby wyświetlić listę linków odwrotnych.

Skompilujmy nasz kod z kompilatorem GCC w terminalu. Do tej pory nie znaleziono błędów kompilacji. Następnie plik został wykonany. Pokazuje najpierw oryginalną powiązaną listę, a następnie listę linkowaną do tyłu zgodnie z poniższym wyjściem Snap.

$ GCC Reverse.C
$ ./A.na zewnątrz

Przykład 02

Nasz pierwszy przykład wskazał tworzenie połączonej listy i dodanie do niej danych ręcznie. Utworzymy link i dodamy do niego dane w czasie działania, aby wyświetlić i odwrócić powiązaną listę. Otwórz ten sam plik ponownie za pomocą edytora „GNU Nano”.

$ nano reverse.C

Te same biblioteki nagłówków zostały uwzględnione podczas utworzenia węzła typu struct. Zdefiniowano trzy główne metody. Wykonanie zostało zainicjowane z metody Main (). Konstruuje wskaźnik węzła jako null. Metoda tworzenia została wywołana podczas wiązania wskaźnika w jego parametrach. Metoda show () została wyświetlona na oryginalnej listy Linked. Z drugiej strony wywołano metodę odwrotną () w celu odwrócenia listy powiązanej. Po tym wyświetlono odwróconą listę połączoną.

Po wywołaniu metody tworzenia () zostanie wykonany poniższy kod. Wykonano dwa wskaźniki typu struktura wraz z 2 liczbami całkowitymi; użytkownik doda wartość dla odpowiedniego węzła. Wartość ta zostanie przypisana do odpowiedniego węzła przez wskaźnik „Temp”. Użytkownik został poproszony o dalsze dodawanie danych lub palenie, dodając 1 lub 0.

Metoda odwrotna była tutaj, aby dodać odwrócenie danych z powiązanej listy. Pętla While została tutaj użyta do odwrócenia połączonej listy za pomocą jej wskaźników.

Metoda show () została tutaj zdefiniowana w celu wydrukowania danych dodanych do listy powiązanej.

Kompilacja i wykonanie zostały wykonane przy użyciu tych samych dwóch poleceń. Użytkownik wprowadza numer węzła i jego odpowiednią wartość. Po rzuceniu palenia oryginalna i odwrócona lista połączona została wyświetlona na ekranie.

$ GCC Reverse.C
$ ./A.na zewnątrz

Wniosek

Ten artykuł jest najlepszy na demonstracji cofania listy w języku C. Odwrócenie linkowanej listy zawiera również tworzenie połączonej listy i wciskanie danych do węzłów. Ostatecznie metody wyświetlania zostały użyte do wyświetlania zawartości w oryginalnej i odwrotnej kolejności.