logo

Ja Pythonissa

Deque (Doubly Ended Queue) Pythonissa toteutetaan moduulin avulla kokoelmat . Deque on suositeltavampi kuin luettelo tapauksissa, joissa tarvitsemme nopeampia liite- ja pop-operaatioita säilön molemmista päistä, koska deque tarjoaa O(1) aika monimutkaisuus liittämis- ja pop-operaatioille verrattuna luetteloon, joka tarjoaa O(n) aikamonimutkaisuuden.

Rajoitettujen deque-tulojen tyypit

    Input Restricted Deque: Tulo on rajoitettu toisessa päässä, kun taas poistaminen on sallittu molemmissa päissä. Output Restricted Deque: lähtö on rajoitettu toisessa päässä, mutta lisäys on sallittu molemmissa päissä.

Esimerkki: Python-koodi esitettäväksi

Python 3








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



>

>

Lähtö

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

Leikkaukset dequessa

Esimerkki 1: Kohteiden lisääminen tehokkaasti

    append() :- Tätä funktiota käytetään lisäämään arvo argumentissaan dequen oikeaan päähän. appendleft() :- Tätä funktiota käytetään lisäämään arvo argumentissaan dequen vasempaan päähän.

Python 3




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

>

mitä pythonissa on
>

Lähtö

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

Katso monimutkaisuusanalyysin loppu.

Esimerkki 2: Esineiden poksaaminen tehokkaasti

    pop() :- Tätä funktiota käytetään poistamaan argumentti dequen oikeasta päästä. popleft() :- Tätä funktiota käytetään poistamaan argumentti dequen vasemmasta päästä.

Python 3




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

>

>

Lähtö

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

Katso monimutkaisuusanalyysin loppu.

Esimerkki 3: Dequen kohteiden käyttäminen

    index(ele, beg, end) :- Tämä funktio palauttaa argumenteissa mainitun arvon ensimmäisen indeksin aloittaen haun aloitus- ja loppuindeksistä. insert(i, a) :- Tämä funktio lisää argumenteissa(a) mainitun arvon argumenteissa määritettyyn indeksiin(i). remove() :- Tämä funktio poistaa argumenteissa mainitun arvon ensimmäisen esiintymän. count() :- Tämä funktio laskee argumenteissa mainittujen arvon esiintymisten määrän.

Python 3




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

>

>

Lähtö

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

Katso monimutkaisuusanalyysin loppu.

Esimerkki 4: Dequen koko

    len(dequeue) :- Palauttaa jonon nykyisen koon.

Python 3




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

>

>

Lähtö

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>

Katso monimutkaisuusanalyysin loppu.

Esimerkki 5: Dequen etu- ja takaosa

    Deque[0] :- Pääsemme dequen etuelementtiin indeksoimalla de[0]:lla. Deque[-1] :- Pääsemme dequen takaelementtiin indeksoimalla de[-1]:llä.

Python 3




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

>

>

Lähtö

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

Katso monimutkaisuusanalyysin loppu.

Esimerkki 6: Eri toiminnot dequessa

    expand (iterable) :- Tätä toimintoa käytetään lisäämään useita arvoja dequen oikeaan loppuun. Hyväksytty argumentti on toistettavissa. extendleft(iterable) :- Tätä toimintoa käytetään lisäämään useita arvoja dequen vasempaan päähän. Hyväksytty argumentti on toistettavissa. Järjestys on päinvastainen vasemmanpuoleisten liitteiden seurauksena. reverse() :- Tätä funktiota käytetään vaihtamaan deque-elementtien järjestys. rotate() :- Tämä funktio kiertää deque:n argumenteissa määritetyn numeron verran. Jos määritetty luku on negatiivinen, kierto tapahtuu vasemmalle. Muuten kierto on oikealle.

Python 3




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

>

>

Lähtö

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

Katso monimutkaisuusanalyysin loppu.

Monimutkaisuusanalyysi:

menetelmät

Aika monimutkaisuus

Aputila

liitä()

O(1)

O(1)

appendleft()

O(1)

O(1)

pop()

O(1)

O(1)

popleft()

O(1)

O(1)

indeksi (ele, beg, end)

PÄÄLLÄ)

O(1)

lisää (i, a)

PÄÄLLÄ)

O(1)

Poista()

PÄÄLLÄ)

O(1)

Kreivi()

PÄÄLLÄ)

O(1)

vain (jonosta)

O(1)

O(1)

Deque[0]

O(1)

O(1)

Deque[-1]

O(1)

O(1)

laajentaa (iteroitavissa)

NUOLI)

O(1)

pidennetty vasen (iteroitava)

NUOLI)

O(1)

käänteinen()

PÄÄLLÄ)

O(1)

mikä on regex java

kiertää()

NUOLI)

O(1)