Połączona lista
Połączona lista to rodzaj struktury danych. Elementy wewnątrz linkowanej listy są połączone za pomocą wskazówek. Jest to zbiór węzłów. Węzeł zawiera dwie części. Jeden obejmuje dane, a druga część składa się z wskaźnika. Ten wskaźnik służy do przechowywania adresu pamięci elementu węzła przylegającego do niego na listy połączonej. Zaletą połączonej listy tablicy jest to, że ma ona dynamiczny rozmiar.
Reprezentacja listy powiązanej
Pierwszy węzeł linkowanej listy jest nazywany z wyprzedzeniem. Jego wartość jest zerowa w przypadku pustej tablicy. W C ++ używamy struktury do reprezentowania węzła.
To jest prosty kod C ++ tworzenia listy powiązanych. Stworzyliśmy klasę, w której jej część publiczna, zmienna danych typu liczb całkowitych, jest tworzona ze zmienną typu wskaźnika „Dalej”, która będzie przechowywać adres węzła.
Trzy węzły są tworzone w programie głównym, z górnym pierwszym węzłem zadeklarowanym jako węzeł „główny”. Wszystkie trzyprzepustki tych węzłów są puste, więc są one początkowo zadeklarowane jako null. Po zrobieniu tego wszystkie trzy węzły są przydzielane w stercie. „Głowa” drugi, a trzeci jest przypisany do nowego węzła.
Teraz będziemy przypisać dane, a dane mogą być dowolną wartością losową. Najpierw przypisamy dane w pierwszym węźle.
Head-> dane = 1;
Ta demonstracja przypisywania danych pokazuje, że część danych pierwszego węzła będzie zawierać w niej dane. Po przypisaniu danych połączymy pierwszy węzeł z drugim
Head-> następny = drugi;
Podłączamy część „następnego” wskaźnika z drugim węzłem, aby połączyć dwa węzły. Przypisamy dane przechowywane w części danych pierwszego węzła. Podczas gdy część „następna” będzie zawierać adres pamięci węzła obecnego po niej. Podobnie, teraz przypisamy dane do drugiego węzła, a drugi węzeł zostanie połączony z trzecim węzłem. Teraz dodaj dane w trzecim węźle. Ponieważ stworzyliśmy tylko trzy węzły, nie ma innego węzła, więc kolejna część trzeciego wskaźnika zostanie ogłoszona jako zerowa; Wskazuje to, że lista połączona jest zakończona.
Trzeci-> następny = null;
Przykład
SORT LISTA LISTEK
Tutaj zadeklarowaliśmy strukturę reprezentującą węzeł z pojedynczej listy połączonej. Jak opisano powyżej, koncepcja powiązanej listy deklaracji, zmienna danych i zmienne wskaźnika są pobierane w strukturze. Podobnie jak część wskaźnika „następnego”, która przechowuje adres, zadeklarowaliśmy również dwie kolejne zmienne typu wskaźnika: głowica węzła i ogon węzła. Oba są początkowo deklarowane jako null.
Ponieważ węzeł insercji zajmuje się wkładaniem węzła danych na połączonej liście, użyjemy funkcji dodawania węzła. Dane przypisują również ten węzeł. Tak więc parametr tej funkcji będzie zawierał dane jako argument. Przed wstawieniem węzeł zostanie utworzony z alokacją pamięci za pomocą funkcji Malloc (). Część danych nowego węzła zostanie przypisana z przekazanymi danymi.
NewNode-> data = data;
I podobnie następna część jest przypisana jako zerowa, ponieważ nie ma połączenia między tym węzłem z żadnym innym. Jak deklarowane są zmienne głowy i ogona, aby pomóc w sortowaniu wstawienia. Teraz wykorzystamy je tutaj. Po pierwsze, korzystając z instrukcji IF-Else, sprawdzimy, czy głowa jest zerowa, jak zadeklarowaliśmy jako null powyżej, co oznacza, że cała lista jest pusta. Właśnie dlatego głowa jest pusta, więc zmienne głowy i ogona wskazują na nowo utworzony węzeł. W przeciwnym razie, jeśli lista nie jest pusta, załóżmy, że podczas tworzenia listy wprowadziliśmy również dane, w tym przypadku nowy węzeł zostanie dodany na ostatnim miejscu.
Tail-> Next = newNode;
A teraz ten nowy węzeł będzie działał jako nowa opowieść.
Tail = newNode;
W celu dalszego dodania ten sam proces trwa, ale musimy sortować powiązaną listę. Dlatego dodaliśmy pojedynczy węzeł, który działa jako węzeł tymczasowy do tymczasowego przechowywania danych.
Po dodaniu nowego węzła użyjemy funkcji do sortowania/ układania listy. Ponieważ typ sortowania nie jest tutaj wspomniany, domyślnie lista będzie sortowana w kolejności rosnącej.
Wracając do przykładu, kolejny aktualny wskaźnik wskazuje na głowę, jak zadeklarowaliśmy powyżej. Służy to do sortowania elementów listy. Kolejna zmienna typu wskaźnika zostanie użyta tutaj, a następnie zadeklarowana jako null. Dalsze użytkowanie będzie później w programie.
Tutaj zastosujemy kontrolę, aby określić, czy wskaźnik główny znajduje się w pozycji zerowej, a następnie wróć do programu głównego. W przeciwnym razie zastosujemy tutaj logikę, która będzie śledzić pętlę. Wskaźnik indeksu wskazuje następną część bieżącego węzła. W środku, gdy jest używana inna, gdy jest używana pętla, a to będzie trwać, aż bieżący węzeł nie będzie zerowy. Tutaj użyjemy podnośnika IF, aby sprawdzić, czy dane w bieżącym węźle są większe niż dane w węźle indeksu, wówczas dane między nimi zostaną zamienione.
Zmienna temp odgrywa tutaj ważną rolę w zamianach danych. Najpierw dane bieżącego węzła są przesyłane do temperatury, a następnie bieżący węzeł jest teraz pusty. Ten węzeł zostanie przypisany wartość danych indeksu. A na końcu pusty węzeł indeksu jest przypisywany przez dane obecne w zmiennej temp.
Poza zastąpieniem IF węzeł indeksu jest również zwiększany o nową wartość indeksu. Podobnie, poza pętlą pobytu, bieżący węzeł jest również przypisywany przez nową wartość.
Następnie użyliśmy tutaj funkcji wyświetlania, aby wyświetlić wartość wszystkich węzłów. Obecny wskaźnik będzie wskazywał na głowę. W innym przypadku A alil pętla wyświetla wszystkie wartości, aż bieżący węzeł nie będzie zerowy.
Teraz rozważ program główny, funkcja addnode () jest wywoływana z wartościami, aby dodać nowe wartości wewnątrz listy. Następnie funkcja wyświetlania wyświetli wszystkie wprowadzone wartości przed sortowaniem. Następnie wywołaj funkcję sort (). A potem ponownie, wywołać funkcję wyświetlania, aby wyświetlić całą listę posortowaną.
Zapisz plik kodu, a następnie wykonaj go w terminalu Ubuntu za pomocą kompilatora G ++.
$ g ++ -o plik pliku.C
$./plik
Z wynikającej z tego wartości możesz zauważyć, że wartości są ułożone w kolejności rosnącej, ponieważ zostały wprowadzone losowo na liście powiązanej.
Wniosek
„SORT LISTE LISTA C ++” zawiera opis podstawowej wiedzy na temat powiązanej listy i jej tworzenia. Przykładowy kod wystarczy, aby zademonstrować tworzenie węzłów i działanie wszystkich węzłów na połączonej liście. Elementy wewnątrz linkowanej listy są ułożone w kolejności rosnącej za pomocą szczegółowego procesu, dodając nowe węzły, a następnie sortowanie za pomocą zmiennej temp. Objaśnienie z kodem jest wykonywane, aby pomóc użytkownikowi.