Stacks & Qeues Flashcards
Definitie van een Stack
Een stack is een data-opslagstructuur die toegang geeft tot slechts één data-item: het laatst ingevoerde item. Dit wordt een Last-In-First-Out (LIFO) mechanisme genoemd.
De primaire operaties van een stack zijn:
- Push: Een item toevoegen aan de bovenkant van de stack.
- Pop: Een item verwijderen van de bovenkant van de stack.
- Peek: Het bovenste item bekijken zonder het te verwijderen.
Push Operatie Stack
public void push(long j) {
stackArray[++top] = j;
}
De push-operatie voegt een item toe aan de bovenkant van de stack. Eerst wordt de top
variabele verhoogd, en daarna wordt het item ingevoegd.
Pop Operatie Stack
public long pop() {
return stackArray[top–];
}
De pop-operatie verwijdert en retourneert het item van de bovenkant van de stack. Eerst wordt het item opgehaald en daarna wordt de top
variabele verlaagd.
public long peek() {
return stackArray[top];
}
De peek-operatie bekijkt het bovenste item van de stack zonder het te verwijderen.
Definitie van een Queue
Een queue is een data-opslagstructuur die toegang geeft tot het oudste data-item: het eerst ingevoerde item. Dit wordt een First-In-First-Out (FIFO) mechanisme genoemd.
De primaire operaties van een queue zijn:
- Enqueue: Een item toevoegen aan de achterkant van de queue.
- Dequeue: Een item verwijderen van de voorkant van de queue.
Enqueue Operatie
public void enqueue(long j) {
if(rear == maxSize - 1) {
rear = -1;
}
queueArray[++rear] = j;
nItems++;
}
De enqueue-operatie voegt een item toe aan de achterkant van de queue. Als de rear
het einde van de array heeft bereikt, wordt deze teruggezet naar -1 om het cirkelvormig te maken.
Dequeue Operatie
public long dequeue() {
long temp = queueArray[front++];
if(front == maxSize) {
front = 0;
}
nItems–;
return temp;
}
De dequeue-operatie verwijdert en retourneert het item van de voorkant van de queue. Als de front
het einde van de array heeft bereikt, wordt deze teruggezet naar 0 om het cirkelvormig te maken.
Queue Grootte
public boolean isEmpty() {
return (nItems == 0);
}
public boolean isFull() {
return (nItems == maxSize);
}
De methoden isEmpty
en isFull
controleren of de queue respectievelijk leeg of vol is.
isEmpty():
Controleren of de stack leeg is.
Wat is een priority queue en hoe werkt het?
een abstract datatype waarin elk element een prioriteit heeft. Elementen met een hogere prioriteit worden eerder verwerkt dan elementen met een lagere prioriteit.