You are on page 1of 51

Why/Why not use Linked List:

+Insert/Delete at begining is O(1)


+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing

Why/Why not use Linked List:


+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin

ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.

Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.

Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear

Circular Linked list:


A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:

A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time

-Insert/Delete at random index takes linear time


-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time

-Search is also linear


Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut

ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.

+Dynamic compared to arrays which are static


-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)

+Insert/Delete at the end or any fixed position (like middle element) is


O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is

O(1) if we store node at that index


+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating

simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing

Why/Why not use Linked List:


+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches

, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.

Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search

In an unordered list, one simple heuristic for decreasing average search


time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:

A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir

cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time

-Search is also linear


Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear

Circular Linked list:


A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.

+Dynamic compared to arrays which are static


-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static

-Indexing takes linear time


-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is

O(1) if we store node at that index


+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked
+Insert/Delete
+Insert/Delete
O(1) if we store node

List:
at begining is O(1)
at the end or any fixed position (like middle element) is
at that index

+Stack/Queue can be easily executed with LinkedList, deque can be execut


ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest

to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:

+Insert/Delete at begining is O(1)


+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.

average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search

In an unordered list, one simple heuristic for decreasing


Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search

time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir

cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.

Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear

Circular Linked list:


A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear

Circular Linked list:


A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static

-Indexing takes linear time


-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time

-Insert/Delete at random index takes linear time


-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index

+Stack/Queue can be easily executed with LinkedList, deque can be execut


ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut

ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:

+Insert/Delete at begining is O(1)


+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)

+Insert/Delete at the end or any fixed position (like middle element) is


O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen

t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing

Why/Why not use Linked List:


+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin

ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.

Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.

Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear

Circular Linked list:


A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:

A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time

-Insert/Delete at random index takes linear time


-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time

-Search is also linear


Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut

ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing
Why/Why not use Linked List:
+Insert/Delete at begining is O(1)
+Insert/Delete at the end or any fixed position (like middle element) is
O(1) if we store node at that index
+Stack/Queue can be easily executed with LinkedList, deque can be execut
ed with DoublyLinkedList.
+Dynamic compared to arrays which are static
-Indexing takes linear time
-Insert/Delete at random index takes linear time
-Search is also linear
Circular Linked list:
A linked list where the last node points to the first node forming a cir
cle.
Speeding up search
In an unordered list, one simple heuristic for decreasing average search
time is the move-to-front heuristic, which simply moves an element to the begin
ning of the list once it is found. This scheme, handy for creating simple caches
, ensures that the most recently used items are also the quickest to find again.
average search time is the move-to-front heuristic, which simply moves an elemen
t to the beginning of the list once it is found. This scheme, handy for creating
simple caches, ensures that the most recently used items are also the quickest
to find again.

You might also like