PCLCHS

Data Structure

Data Structure (ডাটা স্ট্রাকচার) হলো একটি নির্দিষ্ট উপায়ে data সংরক্ষণ (store), সংগঠিত (organize) এবং পরিচালনা (manage) করার পদ্ধতি, যাতে করে সেই data-তে কার্যকরভাবে access এবং modification করা যায়।

Data Structure এর উদ্দেশ্য:

  1. Efficiency – data দ্রুত খুঁজে পাওয়া, পরিবর্তন করা, যোগ করা বা মুছে ফেলার জন্য।
  2. Reusability – একবার তৈরি করলে অনেক জায়গায় ব্যবহার করা যায়।
  3. Organization – বিশৃঙ্খল তথ্যকে একটি গঠিত ও কাঠামোবদ্ধ রূপে রূপান্তর করা।

Data Structure এর প্রকারভেদ:

1. Linear Data Structure

যেখানে উপাদানগুলি (elements) একটানা লাইন বা ধারাবাহিকভাবে সাজানো থাকে।

  • Array – একই ধরনের data ধারাবাহিকভাবে সংরক্ষণ করে।
  • Linked List – প্রতিটি element একটি pointer ধারণ করে যা পরবর্তী element এর দিকে নির্দেশ করে।
  • Stack – LIFO (Last In First Out) ভিত্তিতে কাজ করে।
  • Queue – FIFO (First In First Out) ভিত্তিতে কাজ করে।

2.Non-Linear Data Structure

যেখানে উপাদানগুলি শাখা-প্রশাখা আকারে বা গাছের মতো গঠিত হয়।

  • Tree – hierarchical structure; যেমন Binary Tree, Binary Search Tree।
  • Graph – node এবং edge নিয়ে গঠিত; ব্যবহার হয় network-এর জন্য।

উদাহরণ:

  • যদি তোমার কাছে ১০০ জন ছাত্রের নাম থাকে, তখন Array ব্যবহার করে তুমি তাদের নাম ধারাবাহিকভাবে রাখতে পারো।
  • যদি ডিরেক্টরি বা ফোল্ডার স্ট্রাকচার দেখতে চাও, সেটা Tree structure-এর উদাহরণ।

বাস্তব জীবনে ব্যবহার:

  • Database indexing (Tree)
  • Undo operation in software (Stack)
  • Task scheduling (Queue)
  • Maps, GPS navigation (Graph)

Linear Data Structure (লিনিয়ার ডাটা স্ট্রাকচার)

Linear Data Structure হলো সেই ধরনের data structure যেখানে উপাদানগুলো (elements) একটির পর একটি ধারাবাহিকভাবে সাজানো থাকে, অর্থাৎ প্রতিটি element-এর শুধুমাত্র পরবর্তী এবং পূর্ববর্তী element-এর সঙ্গে সম্পর্ক থাকে (যদি থাকে)।

উদাহরণ:

  1. Array
    • একই ধরনের data ধারাবাহিকভাবে সংরক্ষণ করে।
    • নির্দিষ্ট index-এর মাধ্যমে access করা যায়।
  2. Linked List
    • প্রতিটি node data এবং একটি pointer ধারণ করে যা পরবর্তী node-এর দিকে নির্দেশ করে।
  3. Stack
    • LIFO (Last In First Out) পদ্ধতিতে কাজ করে।
    • যেমন: plate এর stack – উপরেরটা আগে উঠবে।
  4. Queue
    • FIFO (First In First Out) পদ্ধতিতে কাজ করে।
    • যেমন: লাইনে দাঁড়িয়ে থাকা – যে আগে আসবে, সে আগে যাবে।




Non-Linear Data Structure (নন-লিনিয়ার ডাটা স্ট্রাকচার)

Non-Linear Data Structure হলো এমন এক ধরনের গঠন যেখানে একটি উপাদান একাধিক উপাদানের সাথে সম্পর্কিত হতে পারে, এবং এটি গাছ বা গ্রাফের মতো গঠিত হয়। এই ধরনের data structure-এ traversal বা খোঁজা একটু জটিল হয়।

উদাহরণ:

  1. Tree
    • Hierarchical structure (like family tree)।
    • Binary Tree, Binary Search Tree, AVL Tree ইত্যাদি এর উদাহরণ।
  2. Graph
    • Node (vertex) এবং Edge নিয়ে গঠিত।
    • একাধিক node একে অপরের সাথে সংযুক্ত থাকে।
    • Directed বা Undirected, এবং Weighted বা Un weighted হতে পারে।
তুলনামূলক পার্থক্য:
বৈশিষ্ট্যLinear Data StructureNon-Linear Data Structure
StructureSequentialHierarchical বা Interconnected
Memory ব্যবহার   Contiguous বা sequentialRandom
Traversalসহজজটিল
উদাহরণArray, Stack, QueueTree, Graph

Array (অ্যারে) কী?

Array হলো একটি Linear Data Structure যেখানে একই ধরনের (same data type) একাধিক element ধারাবাহিকভাবে একটি নির্দিষ্ট memory location-এ সংরক্ষণ করা হয়। প্রতিটি element-এর একটি নির্দিষ্ট index থাকে, যার মাধ্যমে সেই element-এ access করা যায়।

 

1D Array (One-Dimensional Array)

এটি সবচেয়ে সাধারণ Array, যেখানে data একটি সরল লাইনে সাজানো থাকে।

গঠন:

int marks[5] = {90, 85, 70, 88, 92};

এখানে marks নামের array-তে ৫টি integer value সংরক্ষিত আছে।

ব্যবহার:

  • Student-দের marks list সংরক্ষণ
  • Temperature বা sensor readings
  • Simple lookup table
  • Data sorting ও searching algorithms (যেমন: Bubble Sort, Linear Search)

2D Array (Two-Dimensional Array)

এটি একটি array of arrays, যেখানে data rowcolumn আকারে সাজানো থাকে, ঠিক একটি table বা matrix-এর মতো।

গঠন:

int matrix[3][3] = {   {1, 2, 3},   {4, 5, 6},   {7, 8, 9}};

এখানে matrix একটি ৩x৩ two-dimensional array।

ব্যবহার:

  • Matrix operation (addition, multiplication)
  • Game board design (যেমন: Tic-Tac-Toe)
  • Image processing (pixel values 2D array-তে থাকে)
  • Graph representation using adjacency matrix

তুলনামূলক চিত্র:

বৈশিষ্ট্য1D Array2D Array
Structure     Single line         Table/Matrix form
Access format    arr[i]     arr[i][j]
Complexity          সহজ         তুলনামূলক জটিল
ব্যবহারSimple data listGrid বা Matrix সম্পর্কিত সমস্যা




Linked List (লিঙ্কড লিস্ট) কী?

Linked List হলো একটি Linear Data Structure যেখানে প্রতিটি উপাদান (যাকে node বলা হয়) দুটি অংশ নিয়ে গঠিত:

  1. Data – যেখানে তথ্য সংরক্ষণ করা হয়।
  2. Pointer – যা পরবর্তী node-এর ঠিকানা ধরে রাখে।

Array-এর মতো contiguous memory ব্যবহারের বদলে, Linked List প্রতিটি node-কে আলাদাভাবে সংযুক্ত করে।

  1. Singly Linked List

এই ধরনের Linked List-এ প্রতিটি node শুধু পরবর্তী node-এর ঠিকানা ধারণ করে, অর্থাৎ শুধু next pointer থাকে।

Structure:

PCLCHS

বৈশিষ্ট্য:

  • একদিকে traversal করা যায় (forward only)
  • memory allocation dynamic
  • insertion ও deletion তুলনামূলক সহজ (array-এর তুলনায়)
  1. Doubly Linked List

এই ধরনের Linked List-এ প্রতিটি node-এ দুটি pointer থাকে: একটি next pointer এবং একটি previous pointer।

Structure:

NULL ← [Prev | Data | Next] ↔ [Prev | Data | Next] ↔ [Prev | Data | Next] → NULL

বৈশিষ্ট্য:

  • দুই দিকে traversal সম্ভব (forward & backward)
  • insertion ও deletion আরও সহজ, বিশেষ করে মাঝখানে
  • ব্যবহারে বেশি memory লাগে (কারণ দুইটি pointer)
  1. Circular Linked List

এই ধরনের Linked List-এ শেষ node-এর pointer প্রথম node-এর দিকে নির্দেশ করে, ফলে এটি একটি বৃত্ত (loop) তৈরি করে।

দুই রকম হতে পারে:

  • Singly Circular Linked List: শেষ node-এর next pointer প্রথম node-কে নির্দেশ করে।
  • Doubly Circular Linked List: শেষ node-এর next pointer প্রথম node-এ এবং প্রথম node-এর prev pointer শেষ node-এ।

 

Structure (Singly Circular):

PCLCHS

বৈশিষ্ট্য:

  • কোনো নির্দিষ্ট node থেকে শুরু করে লুপ করে traversal করা যায়
  • Real-time applications-এ ব্যবহৃত হয় (যেমন: task scheduling, music playlist)

 

তুলনামূলক টেবিল:
বৈশিষ্ট্যSingly Linked ListDoubly Linked ListCircular Linked List
Traversalএকদিকেদুইদিকেএক বা দুইদিকে (loop)
Memory usageকমবেশি (due to two pointers)মাঝারি বা বেশি
Structure সহজতাসহজমাঝারিএকটু জটিল
Practical UseStack, QueueBrowser history, UndoScheduling, Playlists
Data Mining (ডেটা মাইনিং)
বংশগতি এবং কয়েকটি সাধারণ জিনগত রোগ
কোষ বিভাজন ও কোষ চক্র
Database Management System (DBMS)
জীবজগতের নিয়ন্ত্রণ ও সমন্বয়
Scroll to Top