W poprzednich wykładach mówiliśmy o funkcji Travaris, aby upewnić się, że czas
pracy jest czysty.
Złożoność jest, ale i tak, liniowym czasem działania, złożonością, ponieważ musimy wziąć pod uwagę każdą
nutę lingley.
Oczywiście A ma liniowy czas działania.
Złożoność to czas działania, złożoność wielkości listy.
Oczywiście, że tak.
Lub jedna stała złożoność czasu działania, ponieważ musimy tylko zwrócić rzeczywistą zmienną, liczbę
węzłów i wstawkę i ma liniowy czas działania.
Złożoność to początek.
Ma jedną stałą złożoność czasu działania.
Zaimplementujmy ostatnią funkcję.
Tak zwana śmierć usuń.
I to spowoduje, że dane zostaną usunięte.
Więc jeśli s to było, to znaczy, że lista linków jest pusta.
Więc nie zawiera żadnego elementu.
Oczywiście, że wrócimy.
A następnie definiujemy rzeczywisty węzeł.
Zatem rzeczywistym węzłem jest S.
To, że poprzedni węzeł nie jest na początku.
I chociaż rzeczywiste dane węzła nie są równe danym, szukamy tego pierwszego z czterech, poprzedni śnieg
jest równy faktycznemu węzłowi.
A rzeczywisty węzeł jest równy faktycznemu węzłowi.
Ta następna notatka.
A ponieważ chcielibyśmy uniknąć nieskończonej pętli, musimy upewnić się, że rzeczywisty węzeł nie jest
inny niż rzeczywisty węzeł.
Te dane nie są równe danym.
Co się stanie po chwili?
Zasadniczo najpierw musimy poszukać przedmiotu, którego chcemy się pozbyć.
Więc chcemy usunąć.
Dlatego właśnie definiujemy rzeczywisty węzeł.
I poprzedni węzeł.
I chociaż rzeczywisty węzeł nie jest inny, a rzeczywisty nie, dane nie są równe danym.
Zamierzamy rozważyć następny węzeł na długiej liście.
Zaczynamy od węzła głównego.
Tak więc z pierwszym elementem na liście linków.
Co to znaczy, że jeśli faktyczny węzeł to żaden, co to oznacza?
Oznacza to, że musimy wziąć pod uwagę wszystkie elementy na liście linków.
I na koniec zaktualizowaliśmy rzeczywisty węzeł, aby był ostatnim.
Brak kropki następnego węzła, który nie jest.
Więc nawet rzeczywisty węzeł nie jest po dzikim cyklu.
Możemy wrócić, ponieważ oznacza to, że jest to wyszukiwarka masowa.
Element nie jest obecny na liście linków.
DOBRZE.
W przeciwnym razie musielibyśmy sprawdzić, czy poprzedni węzeł nie jest.
Co to znaczy, że węzeł główny.
Zatem główny węzeł jest tym, którego chcemy się pozbyć.
W takim przypadku musimy ponownie zainicjować węzeł główny.
Rzeczywisty węzeł.
Kropka.
Następny węzeł i jeszcze.
Powiedzieliśmy poprzedni węzeł.
Następny węzeł to faktyczny węzeł.
Następny śnieg.
W ten sposób pozbywamy się danego węzła.
Tak więc rzeczywisty węzeł zapisze węzeł.
Chcemy usunąć, jeśli nie jest, oznacza to, że istnieją środki wyszukiwania.
Więc wracamy.
Jeśli poprzedni węzeł nie jest, oznacza to, że musiał wiedzieć, co chcemy usunąć.
Więc istnieje węzeł to rzeczywisty węzeł.
Następna uwaga: w ten sposób zasadniczo usuwamy węzeł główny.
I tak jak poprzedni węzeł, następny węzeł jest równy faktycznemu węzłowi obok.
Nie.
W ten sposób usuwamy dany węzeł.
O tym rozmawialiśmy.
Jeśli usuniemy pierwszy węzeł, oczywiście musimy po prostu zaktualizować referencje, a nowy węzeł
miał numer cztery.
Ale co, jeśli chcielibyśmy usunąć wewnętrzny węzeł?
Najpierw musimy to znaleźć.
Właśnie dlatego stworzyliśmy gwałtowną pętlę.
Pętla VI znajdzie numer 10.
A co musimy zrobić?
Rzeczywisty węzeł ma w tej chwili numer 10.
Poprzedni węzeł ma minus siedem.
Musimy więc ustawić minus następny węzeł Sevana, aby wskazywał na dwadzieścia pięć, co jest kolejnym węzłem dziesięciu,
który jest rzeczywistym węzłem.
Przepraszam za to.
Nie chcę cię mylić, ale w ten sposób możemy usunąć rzeczywisty węzeł, który poprzedni węzeł
będzie wskazywał na następny węzeł rzeczywistego węzła.
I dokładnie to się tutaj dzieje.
Przede wszystkim musimy wyszukać dany węzeł.
A następnie musimy zaktualizować referencje.
Poprzednie węzły.
Następny węzeł będzie rzeczywistym węzłem.
Następny węzeł.
OK, więc zobaczmy, czy działa dobrze, czy nie.
Na przykład, jeśli chcemy usunąć.
Więc zamiast podróżników usunę na przykład trzy tysiące trzy.
Tysiąca nie ma na długiej liście, więc podróżnicy i ja znów jeżdżę.
Więc coś takiego, jeśli ponownie uruchomimy algorytm, to, jak widać, nic się nie wydarzy, Adam.
Trzy, cztery, dziesięć.
Sto
Tysiąc.
Następnie drukujemy strukturę danych.
Więc lista, ponieważ chcielibyśmy pozbyć się elementu, który nie jest obecny w strukturze danych.
Więc tutaj zamierzam użyć czegoś takiego, aby upewnić się, że widzimy różnicę między tymi
dwiema operacjami.
Jeśli więc usuniemy na przykład Adama i ponownie uruchomimy algorytm, to jak widać Adam został usunięty
z długiej listy tutaj.
Adam jest obecny na długiej liście.
Ale po usunięciu Adama nie ma go na długiej liście.
Co jeśli usuniemy na przykład 10?
Jeśli więc usuniemy dziesięć, dziesięć nie będzie już obecnych w budowaniu tej struktury danych.
Co jeśli na przykład usuniemy ostatni element?
Tysiąc, a następnie tysięczny nie będzie obecny w strukturze danych.
Co jeśli usuniemy, na przykład trzy, wtedy trzy już nie będą obecne.
Jak widać, udało nam się obsłużyć operację usuwania.
Co więc musimy zrobić?
Po pierwsze, jeśli struktura danych, więc lista linków jest pusta, zwracamy, to potrzebujemy faktycznego węzła,
który jest inicjowany jako pierwszy węzeł i poprzedni węzeł, który jest inicjowany jako zakonnica.
Następnie musimy wyszukać element, który chcemy usunąć.
Jeśli faktyczny węzeł nie jest, oznacza to, że LINGLEY nie zawiera elementu.
Chcemy usunąć.
Więc wracamy.
W przeciwnym razie istnieją dwie opcje, które węzeł, który chcemy usunąć, jest pierwszym węzłem.
Więc mieli węzeł.
Tak więc musimy zaktualizować węzeł Had.
Oznacza to, że jest to wewnętrzny węzeł.
Co więc musimy zrobić?
Musimy odpowiednio zaktualizować referencje.
Poprzedni węzeł następny węzeł jest równy faktycznemu jako węzeł następny.
Nie.
W ten sposób usuwamy wewnętrzny węzeł z listy łączy.
Tak więc chodzi o operacje wstawiania i usuwania, o ile LINGLEY pozostaje zaniepokojony.
Na koniec zobaczmy, czy lista łączy rozmiar funkcji listy działa dobrze, czy nie.
Więc przed operacją usuwania i po operacji usuwania, jeśli ją uruchomię, powinniśmy.
Powiem ten rozmiar.
Coś takiego.
I będzie tak samo, jeśli chodzi o tę operację.
Więc jeśli go uruchomię, to, jak widać, nie działa dobrze.
Oczywiście, ponieważ o czym zapomniałem w funkcji usuwania, musimy upewnić się, że po wyszukiwaniu
oznacza.
Co oznacza, że znaleźliśmy szukany przedmiot.
Musimy zmniejszyć liczbę węzłów.
Więc jest liczba węzłów minus jeden.
DOBRZE.
Więc jeśli uruchomię ponownie algorytm, to jak widać po operacji usuwania, udało nam się zmniejszyć rozmiar
listy linków.
I działa dobrze.
W zasadzie wszystkie funkcje działają dobrze.
Wdrożyliśmy w poprzednich wykładach.
Dzięki za oglądanie.