Data Structure Pertemuan 3 (Stack & Queue)
Stack:
- An important data structure which stores its elements in an ordered manner.
- Linear data structure which can be implemented using an array or linked list.
- Last In First Out (LIFO)
Stack Operation:
- Push(x) : add an item x to the top of the stack.
- Pop() : remove an item from the top of the stack.
- Top() : reveal/return the top item from the stack.
Array Representation:
- Top: Used to store topmost element of the stack
- Max: Used to store the maximum number of elements that the stack can hold.
- When Top is NULL, it means the stack is empty.
- When Top = Max – 1, it means the stack is full.
Linked List Representation:
- Linked list is more dynamic.
- One part of node stores data.
- One part of node stores the address of the next node.
- Top in linked list is the START pointer
- When Top is NULL, it means the stack empty.
Infix, Postfix, Prefix:
- Prefix notation, also known as Reverse Polish notation.
- Prefix : operator is written before operands
- Infix notation (commonly used)
- Infix : operator is written between operands
- Postfix notation, also known as Polish notation.
- Postfix : operator is written after operands
Depth First Search
- An algorithm for traversing or searching in a tree or graph. We start at the root of the tree (or some arbitrary node in graph) and explore as far as possible along each branch before backtracking.
Queue
- An important data structure which stores its elements in an ordered manner
- The elements in a queue are added at one end called the rear and removed from the other one end called front.
- FIRST IN FIRST OUT (FIFO)
- Two Variable in queue are Front and rear that point to the position where deletions and insertions can be done respectively.
- push(x) : add an item x to the back of the queue.
- pop() : remove an item from the front of the queue.
- front() : reveal/return the most front item from the queue.
Type Of Queue:
- Regular Queue
- Circular Queue
- Priority Queue
Priority Queue:
- An abstract data type in which the each element is assigned a priority.
- An element with higher priority is processes before an element with lower priority
- Two elements with same priority are processed on a first come first served (FCFS) basis
Breadth First Search
- An algorithm for traversing or searching in a tree or graph. We start at the root of the tree (or some arbitrary node in graph) and explore all neighboring nodes level per level until we find the goal.