DSA Repository

Visual Comparison Of Linked Lists

This file uses Mermaid diagrams to compare linked list structures and operations.

Singly Linked List

flowchart LR
    A[Head] --> B[10]
    B --> C[20]
    C --> D[30]
    D --> E[NULL]

Each node only knows the next node.

Doubly Linked List

flowchart LR
    A[NULL] <--> B[10]
    B <--> C[20]
    C <--> D[30]
    D <--> E[NULL]

Each node knows both previous and next.

Circular Linked List

flowchart LR
    A[10] --> B[20]
    B --> C[30]
    C --> A

The last node points back to the first node.

Insert At Front In Singly Linked List

flowchart LR
    A[New 5] --> B[10]
    B --> C[20]
    C --> D[30]

Only a few pointer changes are needed, so it is O(1).

Delete Front In Singly Linked List

flowchart LR
    A[Head] --> B[10]
    B --> C[20]
    C --> D[30]

    E[After Delete] --> F[20]
    F --> G[30]

Linked Stack

flowchart LR
    A[Top] --> B[30]
    B --> C[20]
    C --> D[10]
    D --> E[NULL]

Push and pop happen at the top, so both are O(1).

Linked Queue

flowchart LR
    A[Front] --> B[10]
    B --> C[20]
    C --> D[30]
    D --> E[NULL]
    F[Rear] --> D

Enqueue at rear and dequeue at front are both O(1) when front and rear are stored.

One-Page Comparison

flowchart TD
    A[Linked Lists] --> B[Singly]
    A --> C[Doubly]
    A --> D[Circular]

    B --> B1[One next pointer]
    B --> B2[Simple]
    B --> B3[No backward move]

    C --> C1[Prev and next pointers]
    C --> C2[Move both directions]
    C --> C3[More memory]

    D --> D1[Last links to first]
    D --> D2[Good for cycles]
    D --> D3[Useful with tail pointer]