<!--
TEMPLATE: Topic README (প্রতিটা data-structure topic folder-এর README.md-এর template)

- প্রতিটা data-structure topic folder-এর (যেমন: 03-linked-list/) `README.md` এই template
  follow করে লেখো।
- এই file টা copy করে topic folder-এ `README.md` নামে রাখো, তারপর প্রতিটা section নিজের
  ভাষায় পূরণ করো।
- Heading গুলো English-এই থাক (সব topic-এ যেন এক রকম দেখায়); নিচের ব্যাখ্যা বাংলায় লেখো।
- README লেখা শেষ হলে এই comment block-টা মুছে দিতে পারো।
-->

# NN — Topic Name

> উপরের H1-এ folder-এর number আর data structure-এর নাম বসাও, যেমন: `# 03 — Linked List`। তারপর এই হিন্ট লাইনটা মুছে দাও।

## What is this data structure

> এক-দুই লাইনে সহজ বাংলায় বলো এটা কী আর কেমন দেখতে — সাথে একটা ছোট mental picture দাও (যেমন: linked list = একটার পর একটা গাঁথা train-এর বগি)।

## Why it exists

> এই data structure কোন সমস্যা বা কষ্ট দূর করার জন্য এসেছে? আগের structure-এ কী অসুবিধা ছিল, এক-দুই লাইনে লেখো।

## Where it is used

> বাস্তব software-এ কোথায় ব্যবহার হয় কয়েকটা উদাহরণ bullet করে দাও (যেমন: browser-এর back button = stack, OS-এর task scheduling = queue)।

## Prerequisites

> এটা শেখার আগে কোন জিনিস গুলো জানা থাকা দরকার bullet করে লেখো (যেমন: pointer/reference, basic loop, function)।

## What to revise before learning

> ঠিক আগে কোন concept বা কোন আগের folder একবার ঝালিয়ে নেওয়া ভালো, সেটা link সহ এক-দুই লাইনে লেখো।

## Learning goals

> শেখা শেষে কী কী পারতে হবে — checklist আকারে লেখো। যেমন:

- [ ] এক বাক্যে বলতে পারবে এই structure-এ insert / search / delete-এর complexity কত
- [ ] কাগজে এর memory layout আঁকতে পারবে
- [ ] কোনো hint ছাড়া একটা core pattern-এর problem solve করতে পারবে

## Problem categories

> এই topic-এর সাধারণ problem-এর ধরন গুলো table-এ সাজাও:

| Category | Typical question shape |
| --- | --- |
| category-র নাম (যেমন: two pointers) | এই ধরনের প্রশ্ন সাধারণত কেমন দেখতে হয় |

## Practice list

> Easy থেকে Hard ক্রমে practice problem সাজাও। প্রতিটা problem-এর সাথে তার **pattern** আর **official source link** ট্যাগ করো। Problem-এর বর্ণনা নিজের ভাষায় এক লাইনে লেখো — statement copy কোরো না।

### Easy

| Problem | Source | Pattern |
| --- | --- | --- |
| Problem-এর নাম, নিজের ভাষায় এক লাইনে কী চায় | Platform + number এবং যাচাই করা official URL বসান | pattern-এর নাম |

### Medium

| Problem | Source | Pattern |
| --- | --- | --- |
| একই format-এ medium problem গুলো এখানে যোগ করো | Platform + number এবং যাচাই করা official URL বসান | pattern-এর নাম |

### Hard

| Problem | Source | Pattern |
| --- | --- | --- |
| একই format-এ hard problem গুলো এখানে যোগ করো | Platform + number এবং যাচাই করা official URL বসান | pattern-এর নাম |

## Visualization ideas

> এই structure বোঝার জন্য কী কী ছবি আঁকা বা animation দেখা যায় bullet করে লেখো (নিজের ASCII diagram, VisuAlgo-র মতো site-এর link ইত্যাদি)।

## Common mistakes

> এই topic শেখার সময় বা coding-এ যেসব ভুল প্রায়ই হয় bullet করে লেখো (যেমন: null/empty case ভুলে যাওয়া, off-by-one)।

## Connection to interview problems

> বড় tech company-র interview-তে এই topic কীভাবে আসে এক-দুই লাইনে বুঝিয়ে বলো। মনে রেখো: "asked by Google/Amazon" নয় — "Google-style pattern" / "common interview pattern" লেখো।

## Connection to competitive programming

> CP-তে (Codeforces, CSES ইত্যাদি) এই structure কোথায় কাজে লাগে এক-দুই লাইনে লেখো।

## Recommended order

> এই folder-এর file গুলো কোন ক্রমে পড়লে সবচেয়ে ভালো বোঝা যাবে — numbered list-এ সাজাও। যেমন:

1. `concept.md` — analogy, memory picture, complexity
2. `visual-explanation.md` — operation গুলো frame by frame
3. `problems/` — easy থেকে hard পর্যন্ত practice

## Source map

> এই folder-এর প্রতিটা idea আর link কোথা থেকে এসেছে তার হিসাব `source-map.md`-তে থাকে। নতুন অধ্যায়ে সেই file তৈরি করে link দিন; [উৎস লেখার ছাঁচ](../00-books-and-learning-sources/source-map-template.md) অনুসরণ করুন।

---

> **মনে রাখার নিয়ম (legal):** সব নিজের ভাষায় লেখো; problem statement copy কোরো না; official link শুধু attribution-এর জন্য রাখো; "asked by Google/Amazon" এমন দাবি কোরো না — বরং "Google-style pattern" / "common interview pattern" লেখো।
