logo

Og i Python

Deque (Double Ended Queue) i Python implementeres ved hjælp af modulet samlinger . Deque foretrækkes frem for en liste i de tilfælde, hvor vi har brug for hurtigere tilføjelse og pop operationer fra begge ender af containeren, da deque giver en O(1) tidskompleksitet for tilføjelses- og pop-operationer sammenlignet med en liste, der giver O(n) tidskompleksitet.

Typer af begrænset deque-input

    Input Begrænset Deque: Input er begrænset i den ene ende, mens sletning er tilladt i begge ender. Output Restricted Deque: output er begrænset i den ene ende, men indsættelse er tilladt i begge ender.

Eksempel: Python-kode til demonstration

Python3








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



>

>

Produktion

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

Operationer på bord

Eksempel 1: Effektiv tilføjelse af varer

    append() :- Denne funktion bruges til at indsætte værdien i sit argument til højre ende af deque. appendleft() :- Denne funktion bruges til at indsætte værdien i dets argument til venstre ende af deque.

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)>

>

>

Produktion

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])>

Se slutningen for kompleksitetsanalyse.

Eksempel 2: Popping af varer effektivt

    pop() :- Denne funktion bruges til at slette et argument fra højre ende af deque. popleft():- Denne funktion bruges til at slette et argument fra venstre ende af deque.

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)>

>

>

Produktion

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])>

Se slutningen for kompleksitetsanalyse.

Eksempel 3: Adgang til varer i en deque

    index(ele, beg, end):- Denne funktion returnerer det første indeks af værdien nævnt i argumenter, og begynder at søge fra start til slut indeks. indsæt(i, a):- Denne funktion indsætter værdien nævnt i argumenter(a) ved indeks(i) angivet i argumenter. remove() :- Denne funktion fjerner den første forekomst af værdien nævnt i argumenter. count() :- Denne funktion tæller antallet af forekomster af værdi nævnt i argumenter.

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)>

>

>

Produktion

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])>

Se slutningen for kompleksitetsanalyse.

Eksempel 4: Størrelsen af ​​en deque

    len(dequeue):- Returner den aktuelle størrelse af dequeue.

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>

>

>

Produktion

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>

Se slutningen for kompleksitetsanalyse.

Eksempel 5: For- og bagside af en deque

    Deque[0] :- Vi kan få adgang til det forreste element af deque ved hjælp af indeksering med de[0]. Deque[-1]:- Vi kan få adgang til det bagerste element af deque ved hjælp af indeksering med de[-1].

Python3




mylivecricket.in
# 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>

>

>

Produktion

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

Se slutningen for kompleksitetsanalyse.

Eksempel 6: Forskellige operationer på deque

    extend(iterable):- Denne funktion bruges til at tilføje flere værdier i højre ende af deque. Det beståede argument kan gentages. extendleft(iterable):- Denne funktion bruges til at tilføje flere værdier i venstre ende af deque. Det beståede argument kan gentages. Rækkefølgen er omvendt som følge af venstre tilføjelser. reverse() :- Denne funktion bruges til at vende rækkefølgen af ​​deque-elementer. rotate() :- Denne funktion roterer deque med det tal, der er angivet i argumenter. Hvis det angivne tal er negativt, sker rotation til venstre. Ellers er rotationen til højre.

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)>

>

>

Produktion

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])>

Se slutningen for kompleksitetsanalyse.

Kompleksitetsanalyse:

Metoder

Tidskompleksitet

Hjælpeplads

Tilføj()

O(1)

O(1)

appendleft()

O(1)

O(1)

pop()

O(1)

O(1)

popleft()

O(1)

O(1)

indeks (ele, beg, slut)

PÅ)

O(1)

indsætte(i, a)

PÅ)

O(1)

fjerne()

PÅ)

O(1)

tælle()

PÅ)

O(1)

bare (afkø)

O(1)

O(1)

Deque[0]

O(1)

O(1)

Deque[-1]

O(1)

O(1)

forlænge (igengående)

PIL)

O(1)

extendleft(iterbar)

PIL)

O(1)

baglæns()

PÅ)

O(1)

rotere()

PIL)

O(1)