Czy ktoś wie, czy Python (może 2.7) ma wbudowaną strukturę danych linkedList
? Wiem, że kolejka jest zaimplementowana przy użyciu listy i nie ma stosu (jest kolejka LIFO).Czy Python ma wbudowaną strukturę danych linkedList?
Odpowiedz
Tam nie jest zbudowany w połączonej listy w Pythonie, ale u mogą korzystać rozkolejkowania, daje u dostępu do głowy i ogon obu, ale jeśli u chcą realizować swoje właścicielem połączonej listy może być u mogą korzystać
Chyba że rzeczywiście potrzebujesz jawnie powiązanej struktury listy dla czegoś konkretnego, wbudowana lista Pythona ma wszystkie funkcje, które można uzyskać z listy połączonej. Na przykład, można użyć go jako stos, co następuje:
>>> x = []
>>> x.append(1)
>>> x.append(2)
>>> x
[1, 2]
>>> x.pop()
2
>>> x
[1]
>>>
Lub, aby wstawić element po danym elemencie:
>>> x = [1,2,3,4,5,6,7]
>>> x.insert(3,"a")
>>> x
[1, 2, 3, 'a', 4, 5, 6, 7]
>>>
Patrz, na przykład, w dokumentacji Pythona na data structures.
Jest to jednak użycie abstrakcyjnego typu danych "lista" (ADT). Natomiast "połączona lista" nie jest ADT, ale jednym z wielu możliwych sposobów wdrożenia tego ADT.
To nie wyjaśnia, jak dodać/usunąć element gdzieś pomiędzy połączoną listą. Jest to nadal implementacja stosu/kolejki. – Mugen
@Mugen: Dodałem to wyjaśnienie. Jednak odpowiedź gaureva była poprawna. W Pythonie nie ma wbudowanej listy połączonej, ale struktury 'list' i' deque' zapewniają wszystkie wymagane funkcje. – Simon
Ale w najbardziej popularnej realizacji, CPython, lista wbudowana jest jak wektor w C++, prawda? Tak więc zajmie O (N) wstawienie elementu gdzieś na środku listy. Natomiast Lista Łączona jest często używana do wstawiania przez O (1) – Pavel
Wierzę, że klasa deque w pakiecie kolekcji jest zaimplementowana jako podwójnie połączona lista z osłonami głowy i ogona. Obsługuje wszystkie zwykłe interfejsy API domyślnej listy. Aby dołączyć do głowy, użyj funkcji leftappend
.
from colletions import deque
Tak, Python collections module zapewnia C-wdrożone deque
obiekt, który wykorzystuje listę BLOCK
s połączony wewnętrznie.
typedef struct BLOCK {
struct BLOCK *leftlink;
PyObject *data[BLOCKLEN];
struct BLOCK *rightlink;
} block;
typedef struct {
PyObject_VAR_HEAD
block *leftblock;
block *rightblock;
Py_ssize_t leftindex; /* 0 <= leftindex < BLOCKLEN */
Py_ssize_t rightindex; /* 0 <= rightindex < BLOCKLEN */
size_t state; /* incremented whenever the indices move */
Py_ssize_t maxlen; /* maxlen is -1 for unbounded deques */
PyObject *weakreflist;
} dequeobject;
static PyTypeObject deque_type;
- 1. Czy Python ma strukturę danych linowych?
- 2. Czy PHP ma strukturę danych zestawu?
- 3. Czy python ma wbudowaną funkcję do przeplatania generatorów/sekwencji?
- 4. Czy Oracle ma wbudowaną funkcję skrótu?
- 5. Czy jQuery ma wbudowaną obsługę JSON?
- 6. Czy Swift ma wbudowaną funkcję logarytmu?
- 7. Czy Ruby ma wbudowaną funkcję ... while?
- 8. Python - sprawdź, czy obiekt jest wbudowaną funkcją
- 9. go ma wbudowaną funkcję "drukowania"?
- 10. dopasowanie danych z wbudowaną funkcję
- 11. Uzyskaj wbudowaną sygnaturę metody - Python
- 12. Jak zaimplementować strukturę zbiorów danych w Javie?
- 13. Sprawdź, czy przeglądarka ma wbudowaną weryfikację formularza HTML5?
- 14. Czy PHPUnit ma wbudowaną funkcję porównywania tablic rekurencyjnych?
- 15. Czy iOS ma wbudowaną czcionkę o stałej szerokości?
- 16. dlaczego LinkedList nie ma initialCapacity w java?
- 17. Czy moja aplikacja ASP.NET MVC ma właściwą strukturę?
- 18. Czy Python ma odpowiednik "przełącznika"?
- 19. Circular LinkedList w Javie
- 20. czy java udostępnia wbudowaną statyczną metodę String.Compare?
- 21. Czy NULL ma typ danych?
- 22. Którą strukturę danych należy użyć do geokodowania?
- 23. Czy model zachowuje swoją strukturę po odebraniu danych w kontrolerze?
- 24. Usuwanie z obiektu LinkedList
- 25. Ustaw strukturę danych Java w javascript/jQuery
- 26. Czy Python ma funkcję zmniejszania ułamków?
- 27. Czy python ma odpowiednik "btoa" Javascripta?
- 28. Dodawanie do linkedList w HashMap <String, LinkedList>
- 29. Jak mogę odkryć strukturę bazy danych Mongo?
- 30. Dlaczego Python nie ma natywnej implementacji listy powiązanej?
Czy jest ktoś, kto może odpowiedzieć na to pytanie? Na to jeszcze nie udzielono odpowiedzi. – Mugen