Page 1 of 1

[GS] vraag ivm Queus

Posted: Wed Jun 17, 2009 12:12 pm
by Madsen
juuwp,

Ik heb opgemerkt dat in de tuyeaux regelmatig vragen (oefeningen) terugkomen over queues... zo zijn er deze 2:

Schrijf een procedure die het aantal items van een queue telt zonder de queue te verwijderen (Pseudo code)

&

Schrijf in pseudocode een operatie voor het ADT Queue, waarbij het aantal items van een Queue geteld wordt. De Queue moet blijven bestaan, maak hierbij enkel gebruik van ADT operaties.

Ik heb al is aan een paar mensen gevraagd of dit wel mogelijk was aangezien ge -wat ik eruit afleid- ni moogt dequeuen en enkel ADT operaties moogt gebruike..

Can someone enlighten me ( en andere mense met hetzelfde probleem :D )?

Madsen.

Posted: Wed Jun 17, 2009 12:44 pm
by Robbe
ik ga er van uit dat je alleen maar enqueue en dequeue mag doen op je queue Q ?

maak een nieuwe queue R aan.

Code: Select all

length := 0
while Q not empty
do
R.enqueue(Q.dequeue())
length := length + 1
done
while R not empty
do
Q.enqueue(R.dequeue)
done
return length

Posted: Wed Jun 17, 2009 12:57 pm
by Madsen
Mhmmm als ge het zo beziet gaat het inderdaad wel en de queue blijft idd bestaan...

Ik had uit de vraagstelling begrepen (en wss degene aan wie ik het vroeg ook :p) dat ge ni aan uwe originele queue mocht komen (alsin zaken enqueuen/dequeuen)

Posted: Wed Jun 17, 2009 2:23 pm
by Pieter Belmans
Als de items in uwe queue een identiteit hebben (aka, objecten zijn) kunt ge het zelfs in 1 queue, dus in-place. Gewoon de identiteit van uw eerste element bijhouden en dequeuen en enqueuen tot uw eerste element terug uw oorspronkelijke was.

Posted: Wed Jun 17, 2009 5:15 pm
by Robbe
Pieter Belmans wrote:Als de items in uwe queue een identiteit hebben (aka, objecten zijn) kunt ge het zelfs in 1 queue, dus in-place. Gewoon de identiteit van uw eerste element bijhouden en dequeuen en enqueuen tot uw eerste element terug uw oorspronkelijke was.
wel veel werk als ge ni gewoon u eerste element kunt opvragen zonder te dequeuen ;)

Posted: Wed Jun 17, 2009 5:29 pm
by Pieter Belmans
1 of 2 keer over uw lijst lopen, het is en blijft O(n) ;). Nuja, uw plaatscomplexiteit ook, so what's the point.

/me trekt zich terug in een grot

Posted: Wed Jun 17, 2009 5:47 pm
by nasam
Robbe wrote:
Pieter Belmans wrote:Als de items in uwe queue een identiteit hebben (aka, objecten zijn) kunt ge het zelfs in 1 queue, dus in-place. Gewoon de identiteit van uw eerste element bijhouden en dequeuen en enqueuen tot uw eerste element terug uw oorspronkelijke was.
wel veel werk als ge ni gewoon u eerste element kunt opvragen zonder te dequeuen ;)
Niemand heeft gezegd dat je queue->getFirst() niet moogt gebruiken.