Array
Sort it using Quick Sort or Heap Sort
Linked List
Sort it using Merge Sort
Doubly Linked List
Circular List
Ordered List
Sorted List
Stack
FIFO, Push, Pop
Application: Building and computing the Reverse Polish Notation.
Queue
LIFO, Enqueue, Dequeue
Application: Breadth First Traversal
Deque
Add and Delete in both end
Hash Table
A good hash function:
1 avoid collisions,
2 tend to spread keys evenly in the array
3 easy to compute
Hashing Method:
Division Method: using the remainder modulo M.
Deficiency: Continual keys are located in continual locations.
Middle Square Method:
Deficiency: Only the middle part of the key is effective for the result
Multiplication Method:
Separate Chaining
Average Running Time: O(λ) where λ is a load factor
Scatter Table
Open Addressing:
probing sequence | primary clustering | capacity limit | size restriction |
linear probing | yes | none | none |
quadratic probing | no |
| M must be prime |
double hashing | no | none | M must be prime |
Application (both Hash Table and Scatter Table): symbol list of a compiler