Wówczas oczekiwana złożoność operacji wyszukiwania to , co daje Poprzez wybór wartości parametru można zmniejszać ilość operacji kosztem pamięci.

Wstawienie i usuwanie elementu polega na użyciu powyższego algorytmu wyszukiwania, aby określić miejsce, w którym powinien znajdować się nowy/usuwany element, wylosowaniu stopnia (przy wstawianiu) oraz odpowiednim przestawieniu wskaźników. Do odpowiedniego ustawienia wskaźników wykorzystuje się zmienną pomocniczą (np. update), która zawiera wskaźniki do ostatnich mniejszych elementów na i-tym poziomie od nowego/usuwanego elementu. Jeśli nowy węzeł jest stopnia wyższego niż lista, to aktualizujemy jej maksymalny stopień. Po usunięciu elementu sprawdzane jest czy nie usunięto elementu o najwyższym stopniu, wówczas zmniejsza się stopień całej listy. Insert(list, searchKey, newValue) local update[1..MaxLevel] x := list→header for i := list→level downto 1 do while x→forward[i]→key < searchKey do x := x→forward[i] update[i] := x x := x→forward if x→key = searchKey then x→value := newValue else newLevel := randomLevel() if newLevel > list→level then for i := list→level + 1 to newLevel do update[i] := list→header list→level := newLevel x := makeNode(newLevel , searchKey, newValue) for i := 1 to newLevel do x→forward[i] := update[i]→forward[i] update[i]→forward[i] := x