Qualcuno sa se Python (forse 2.7) ha una struttura dati integrata linkedList
? So che la coda è implementata usando la lista, e non c'è stack (c'è la coda LIFO).Python ha una struttura dati linkedList integrata?
risposta
non c'è costruito in lista collegata in Python, ma u possibile utilizzare dequeue, dà u accesso alla testa e la coda sia, ma se u desidera implementare la vostra propria lista collegata può essere u possibile utilizzare
A meno che non si desideri effettivamente una struttura di elenco collegata esplicita per qualcosa di specifico, l'elenco integrato di Python ha tutte le funzionalità che si ottengono da un elenco collegato. Ad esempio, è possibile utilizzarlo come una pila, come segue:
>>> x = []
>>> x.append(1)
>>> x.append(2)
>>> x
[1, 2]
>>> x.pop()
2
>>> x
[1]
>>>
Oppure, per inserire un elemento dopo un determinato elemento:
>>> x = [1,2,3,4,5,6,7]
>>> x.insert(3,"a")
>>> x
[1, 2, 3, 'a', 4, 5, 6, 7]
>>>
Si veda, ad esempio, la documentazione Python su data structures.
Tuttavia, questo sta utilizzando il tipo di dati astratto "elenco" (ADT). Al contrario, una "lista collegata" non è un ADT ma uno dei molti modi possibili per implementarla.
Questo non spiega come aggiungere/rimuovere un elemento da qualche parte tra l'elenco collegato. È ancora un'implementazione di uno stack/coda. – Mugen
@Mugen: ho aggiunto questa spiegazione. Tuttavia, la risposta di Gaurev era corretta. Non esiste una lista concatenata integrata in Python ma le strutture 'list' e' deque' danno tutte le funzionalità richieste. – Simon
Ma nella realizzazione più popolare, CPython, l'elenco incorporato è come il vettore in C++, giusto? Quindi occorrerà O (N) per inserire un elemento da qualche parte nel mezzo della lista. Al contrario, l'Elenco collegato viene spesso utilizzato per inserire inserto da O (1) – Pavel
Credo che la classe deque nel pacchetto collezioni sia implementata come una lista doppiamente collegata, con protezioni testa e coda. Supporta tutte le normali API dell'elenco predefinito. Per aggiungere alla testa, utilizzare la funzione leftappend
.
from colletions import deque
Sì, Python collections module fornisce C-implementato deque
oggetto, che utilizza l'elenco dei BLOCK
s collegati internamente.
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. Python ha una struttura dati a corda?
- 2. LaTeX ha una struttura dati array?
- 3. PHP ha una struttura dati impostata?
- 4. java ha una struttura di dati "LinkedConcurrentHashMap"?
- 5. go ha una funzione di "stampa" integrata?
- 6. È linkedList una pila? Qual è la migliore implementazione della struttura dei dati dello stack
- 7. Struttura dati più appropriata (Python)
- 8. Perché .Net non ha una struttura dati impostata?
- 9. java.util.Stack struttura dati appropriata?
- 10. Creazione di più di una struttura dati (dicts) in Python
- 11. come caricare pigro una struttura di dati (python)
- 12. Python inspect.getargspec con funzione integrata
- 13. Una struttura dati per i mapping 1: 1 in python?
- 14. Una struttura dati 2D ottimale
- 15. Struttura dati più veloce per cercare una stringa
- 16. Come stampare i dati nella mia LinkedList
- 17. Java: Differenza tra una raccolta e "Struttura dati"
- 18. Allocazione di memoria errata in Python LinkedList
- 19. Struttura database per struttura dati ad albero
- 20. Funzione inversa Python della funzione integrata id (...)
- 21. Qualcuno ha familiarità con la struttura dei dati mp4?
- 22. Quale struttura dati usare?
- 23. Python con chiamata integrata a mpirun
- 24. API max heap integrata in Python
- 25. LinkedList circolare in Java
- 26. Come si aggiunge una LinkedList <T> a una LinkedList <T> in C#?
- 27. L'efficienza quando si utilizza una grande struttura di dati in una funzione in Python
- 28. LinkedList Vs ConcurrentLinkedQueue
- 29. Struttura dati Python per efficiente add, remove e random.choice
- 30. Dati principali: come progettare una struttura dati ad albero da una voce di dati centrale
C'è qualcuno che può rispondere a questa domanda? Non ha ancora ricevuto risposta. – Mugen