Singly Linked List v JavaScriptu
Chcete-li mít jasnou představu o singly linked list, implementuji třídu LinkedList v JavaScriptu.
každý uzel propojeného seznamu bude mít dva atributy: hodnota & další a propojený seznam bude mít atribut hlava, ocas a délka.
Push
Jak můžeme tlačit nový uzel na konec seznamu? Udělejme funkci push. Nejprve musíme vytvořit nový uzel pomocí dané hodnoty, zkontrolovat, zda má seznam hlavu(je prázdná?) a nezapomeňte zvýšit velikost seznamu.
Pop
S tlačí, musíme přemýšlet o tom, praskání, mazání posledního prvku. Pokud neexistuje žádný uzel, vraťte se nedefinovaný, jinak, projděte seznamem, dokud nedosáhneme ocasu, nastavte další vlastnost druhého posledního uzlu na null, druhý poslední bude ocasem, nezapomeňte zmenšit velikost seznamu.
Shift
Pro smazání prvního prvku, řazení, jako obvykle, zkontrolujte, zda seznam je prázdný. Nejprve uložte aktuální hlavu do proměnné, nastavte hlavu tak, aby byla další aktuální hlavou, snižte délku.
Unshift
vložit uzel na začátku seznamu, zkontrolujte, zda seznam je prázdný, pokud ne, nastavíme současný šéf bude další atribut příchozí uzel, přírůstek velikosti.
I když spojový seznam nemusí indexy, jsme stále schopni najít uzel tím, že daný index. Nejprve se ujistěte, že daný index je větší než nula a menší nebo roven délce seznamu. Pak procházíme seznamem, dokud nedosáhneme indexu.
Co když budeme chtít změnit uzel v našem seznamu? Najdeme uzel s get () a nastavíme uzel s danými daty.
Vložit
Když chceme vložit nový uzel do seznamu, nejprve zkontrolujte, je-li index je větší než 0 a menší než délka. Pokud je index délka, použijeme pouze push (), pokud je index 0, použijeme unshift (). Pro jiné indexy, musíme si uzel na indexu-1, a nastavit další vlastnosti, které uzel nový uzel, a další majetek nový uzel, který bude předchozí další nemovitost, pak jsme přírůstek délky.
Odstranit
na Rozdíl od pop a unshift, odstranit funkce odstranit uzel tím, že daný index. Jako obvykle zkontrolujte, zda je index platný, pokud se index rovná délce-1 nebo 0, použijte pop nebo shift. V opačném případě dostaneme uzel na index-1, nastavíme další vlastnost na tomto uzlu jako další z další vlastnosti, poté zmenšíme velikost.
Reverzní
konečný zpětný dotaz! Jak zvrátíme seznam? Nejprve zaměníme hlavu a ocas, deklarujeme další a předchozí, nastavíme předchozí jako null. Procházíme seznamem.