logo

Și în Python

Deque (Coadă cu sfârșit dublu) în Python este implementat folosind modulul colecții . Deque este preferată față de o listă în cazurile în care avem nevoie de operații mai rapide de adăugare și pop de la ambele capete ale containerului, deoarece deque oferă o O(1) complexitatea timpului pentru operațiunile de adăugare și pop în comparație cu o listă care oferă complexitate de timp O(n).

Tipuri de intrare Deque restricționată

    Intrare restricționată Deque: Intrarea este limitată la un capăt, în timp ce ștergerea este permisă la ambele capete. Output Restricted Deque: ieșirea este limitată la un capăt, dar inserarea este permisă la ambele capete.

Exemplu: cod Python de demonstrat

Python3








from> collections>import> deque> > # Declaring deque> queue>=> deque([>'name'>,>'age'>,>'DOB'>])> > print>(queue)>



>

redenumirea directorului linux
>

Ieșire

deque(['name', 'age', 'DOB'])>

Operațiuni pe deque

Exemplul 1: Adăugarea eficientă a elementelor

    append() :- Această funcție este folosită pentru a insera valoarea în argumentul său la capătul din dreapta al dequei. appendleft() :- Această funcție este folosită pentru a insera valoarea în argumentul său la capătul din stânga deque-ului.

Python3




# importing 'collections' for deque operations> import> collections> # initializing deque> de>=> collections.deque([>1>,>2>,>3>])> print>(>'deque: '>, de)> # using append() to insert element at right end> # inserts 4 at the end of deque> de.append(>4>)> # printing modified deque> print>(>' The deque after appending at right is : '>)> print>(de)> # using appendleft() to insert element at left end> # inserts 6 at the beginning of deque> de.appendleft(>6>)> # printing modified deque> print>(>' The deque after appending at left is : '>)> print>(de)>

>

>

Ieșire

deque: deque([1, 2, 3]) The deque after appending at right is : deque([1, 2, 3, 4]) The deque after appending at left is : deque([6, 1, 2, 3, 4])>

Consultați finalul pentru analiza complexității.

Exemplul 2: Popping Elemente eficient

    pop() :- Această funcție este folosită pentru a șterge un argument din capătul din dreapta al dequei. popleft() :- Această funcție este folosită pentru a șterge un argument din capătul din stânga deque-ului.

Python3




# importing 'collections' for deque operations> import> collections> # initializing deque> de>=> collections.deque([>6>,>1>,>2>,>3>,>4>])> print>(>'deque: '>, de)> # using pop() to delete element from right end> # deletes 4 from the right end of deque> de.pop()> # printing modified deque> print>(>' The deque after deleting from right is : '>)> print>(de)> # using popleft() to delete element from left end> # deletes 6 from the left end of deque> de.popleft()> # printing modified deque> print>(>' The deque after deleting from left is : '>)> print>(de)>

>

>

Ieșire

deque: deque([6, 1, 2, 3, 4]) The deque after deleting from right is : deque([6, 1, 2, 3]) The deque after deleting from left is : deque([1, 2, 3])>

Consultați finalul pentru analiza complexității.

Exemplul 3: Accesarea articolelor dintr-un deque

    index(ele, beg, end) :- Această funcție returnează primul index al valorii menționate în argumente, începând căutarea de la beg până la final index. insert(i, a) :- Această funcție inserează valoarea menționată în argumente(a) la indexul(i) specificat în argumente. remove() :- Această funcție elimină prima apariție a valorii menționate în argumente. count() :- Această funcție numără numărul de apariții ale valorii menționate în argumente.

Python3




# Python code to demonstrate working of> # insert(), index(), remove(), count()> # importing 'collections' for deque operations> import> collections> # initializing deque> de>=> collections.deque([>1>,>2>,>3>,>3>,>4>,>2>,>4>])> # using index() to print the first occurrence of 4> print> (>'The number 4 first occurs at a position : '>)> print> (de.index(>4>,>2>,>5>))> # using insert() to insert the value 3 at 5th position> de.insert(>4>,>3>)> # printing modified deque> print> (>'The deque after inserting 3 at 5th position is : '>)> print> (de)> # using count() to count the occurrences of 3> print> (>'The count of 3 in deque is : '>)> print> (de.count(>3>))> # using remove() to remove the first occurrence of 3> de.remove(>3>)> # printing modified deque> print> (>'The deque after deleting first occurrence of 3 is : '>)> print> (de)>

>

>

Ieșire

The number 4 first occurs at a position : 4 The deque after inserting 3 at 5th position is : deque([1, 2, 3, 3, 3, 4, 2, 4]) The count of 3 in deque is : 3 The deque after deleting first occurrence of 3 is : deque([1, 2, 3, 3, 4, 2, 4])>

Consultați finalul pentru analiza complexității.

Exemplul 4: Dimensiunea unui deque

    len(dequeue) :- Returnează dimensiunea curentă a cozii.

Python3




# Python Program to demonstrate> # how to find size of a Dequeue> from> collections>import> deque> # initializing deque> de>=> deque([>1>,>2>,>3>,>4>,>5>,>6>])> print>(>'Current Deque: '>, de)> # printing current size of deque> print>(f>'Size of Deque: {len(de)}'>)> # using pop() to delete element from right end> # deletes 6 from the right end of deque> de.pop()> # printing modified deque> print>(>' The deque after deleting from right is: '>, end>=> '')> print>(de)> # printing current size of deque> print>(f>'Size of Deque: {len(de)}'>)> # This code is contributed by Susobhan Akhuli>

>

>

Ieșire

Current Deque: deque([1, 2, 3, 4, 5, 6]) Size of Deque: 6 The deque after deleting from right is: deque([1, 2, 3, 4, 5]) Size of Deque: 5>

Consultați finalul pentru analiza complexității.

Exemplul 5: Fața și spatele unui deque

    Deque[0] :- Putem accesa elementul frontal al deque folosind indexarea cu de[0]. Deque[-1] :- Putem accesa elementul din spate al deque folosind indexarea cu de[-1].

Python3


Câte orașe din Statele Unite ale Americii



# Python Program to demonstrate> # accessing the front and back of a Deque> from> collections>import> deque> # initializing deque> de>=> deque([>1>,>2>,>3>,>4>,>5>,>6>])> print>(>'Current Deque: '>, de)> # Accessing the front element of the deque> print>(>'Front element of the deque:'>, de[>0>])> # Accessing the back element of the deque> print>(>'Back element of the deque:'>, de[>->1>])> # This code is contributed by Susobhan Akhuli>

>

>

Ieșire

Current Deque: deque([1, 2, 3, 4, 5, 6]) Front element of the deque: 1 Back element of the deque: 6>

Consultați finalul pentru analiza complexității.

Exemplul 6: Operații diferite pe deque

    extinde(iterabil) :- Această funcție este folosită pentru a adăuga mai multe valori la capătul din dreapta al dequei. Argumentul transmis este iterabil. extendleft(iterable) :- Această funcție este folosită pentru a adăuga mai multe valori la capătul din stânga deque-ului. Argumentul transmis este iterabil. Ordinea este inversată ca urmare a anexărilor din stânga. reverse() :- Această funcție este folosită pentru a inversa ordinea elementelor de deque. rotate() :- Această funcție rotește deque-ul cu numărul specificat în argumente. Dacă numărul specificat este negativ, rotația are loc la stânga. Altfel, rotirea este spre dreapta.

Python3




# Python code to demonstrate working of> # extend(), extendleft(), rotate(), reverse()> # importing 'collections' for deque operations> import> collections> # initializing deque> de>=> collections.deque([>1>,>2>,>3>,])> # using extend() to add numbers to right end> # adds 4,5,6 to right end> de.extend([>4>,>5>,>6>])> # printing modified deque> print> (>'The deque after extending deque at end is : '>)> print> (de)> # using extendleft() to add numbers to left end> # adds 7,8,9 to left end> de.extendleft([>7>,>8>,>9>])> # printing modified deque> print> (>'The deque after extending deque at beginning is : '>)> print> (de)> # using rotate() to rotate the deque> # rotates by 3 to left> de.rotate(>->3>)> # printing modified deque> print> (>'The deque after rotating deque is : '>)> print> (de)> # using reverse() to reverse the deque> de.reverse()> # printing modified deque> print> (>'The deque after reversing deque is : '>)> print> (de)>

>

gimp cum să deselectezi

>

Ieșire

The deque after extending deque at end is : deque([1, 2, 3, 4, 5, 6]) The deque after extending deque at beginning is : deque([9, 8, 7, 1, 2, 3, 4, 5, 6]) The deque after rotating deque is : deque([1, 2, 3, 4, 5, 6, 9, 8, 7]) The deque after reversing deque is : deque([7, 8, 9, 6, 5, 4, 3, 2, 1])>

Consultați finalul pentru analiza complexității.

Analiza complexității:

Metode

Complexitatea timpului

Spațiu auxiliar

adăuga()

O(1)

O(1)

appendleft()

O(1)

O(1)

pop()

O(1)

O(1)

popleft()

O(1)

O(1)

index(ele, beg, end)

PE)

O(1)

introduceți (i, a)

PE)

O(1)

elimina()

PE)

O(1)

numara()

PE)

git add all

O(1)

doar (de coada)

O(1)

O(1)

Deque[0]

O(1)

O(1)

Deque[-1]

O(1)

O(1)

extinde (iterabil)

SĂGEATĂ)

O(1)

extinde stânga (iterabil)

SĂGEATĂ)

O(1)

verso()

PE)

O(1)

roti()

SĂGEATĂ)

O(1)