Skip to main content

ডাটা স্ট্রাকচার- অ্যারে (Array)

Programming is all about data manipulation. Data structure is way of storing data for further manipulation.

ডাটা স্ট্রাকচার আমাদেরকে বিভিন্ন ডাটা সাজিয়ে রাখার ব্যবস্থা করে দেয়। ডাটা সাজিয়ে রাখার অনেক গুলো "তরিকা" আছে। কোনকিছু আমরা কেন সাজিয়ে রাখি? যেন পরে নির্দিষ্ট একটা ডাটা সহজে খুঁজে পেতে পারি। "তরিকা" গুলোর নাম Array, Stack, Queue, Linked List, Tree, Graph.
এগুলা শ খানেক ডাটা স্ট্রাকচারের মধ্যে কিছুর নাম, যেগুলো অনেক বেশি ব্যবহার হয়।

এই পোস্টের উদ্দেশ্য Array নিয়ে আলোচনা।

Array সম্ভবত সবচেয়ে বেশী ব্যবহৃত ডাটা স্ট্রাকচার। Array শব্দটার অর্থ হলো একই ধরনের কিছু জিনিসের সমাবেশ ( বা সমষ্ঠি )। Array দিয়ে আমরা একই ধরনের ডাটার কালেকশন রাখি। এই কালেকশনটা হতে পারে int Type এর ডাটার বা String Type এর ডাটার বা যেকোন ডাটাটাইপের।

5 2 10 0 122
উপরের এটা একটা সংখ্যার কালেকশন। এইটাই একটা Array। আপাতত মনে একটা প্রশ্ন জাগতে পারে যে এখানে সাজিয়ে রাখার কি হলো? আসলে এটাই সাজিয়ে রাখা। পুরো কালকেশনকে ধরে একটা Variable এ রেখে দিলে সেই Variable এর ভেতর থেকে সহজেই খুঁজে বের করা যাবে। Variable জানবে যে প্রথম ঘরে যেই সংখ্যা টা আছে সেটা 5। তিন নম্বর ঘরে যেই সংখ্যাটা আছে সেটা 10। এভাবে একেকটা ঘরে একেকটা বস্তু রাখাকে আমরা বলি Indexing।

এখন একটু দেখে আসি কিভাবে Array বানাতে হয়। তাহলে পরের আলোচনায় সুবিধা হবে।

int a [5] = { 5, 2, 10, 0, 122 };

ঠিক আগের মতই একটা ডাটাটাইপ দিলাম। int দিলাম কারন কালেকশনে আমি অনেকগুলো int রাখবো। Variable টার নাম দিলাম 'a' (যেকোনো নাম দেয়া যাবে)। পাশে ব্র্যাকেটে 5 দিয়েছি মানে হলো আমি এই কালেকশন Variable এ মোট পাঁচটা int রাখতে পারবো। তারপর আমি পাঁচটা সংখ্যা রেখে দিয়েছি। এটাই Array বানানোর Syntax।

মনে রাখার বিষয় হচ্ছে ঘরগুলোর নাম্বারিং 0 থেকে শুরু হয়, 1 থেকে না। মানে a এর 0 index এ আছে 5।
সংখ্যা গুলো রিড করার পদ্ধতিও এরকমই। a[1] লিখলে 2 পাওয়া যাবে।

একটা স্যাম্পল কমপ্লিট কোড লিখছি।

// arrays example
#include <iostream>
using namespace std;

int a [5] = {16, 2, 77, 40, 12071};

int main ()
{
  cout << a[1];
  return 0;
}

এইটা একটা C++ কোড। কোডটা রান করলে আউটপুট পাওয়া যাবে ২।

হাই লেভেলের কথাবার্তাঃ
    Array এর বেসিক তো বুঝা গেলো। তবে এগুলা সবই বাহির থেকে। ভেতরে কি হচ্ছে সেটাও জানা দরকার। আমি যখন int a [5] এই কথাটা লিখলাম, তখন আমার কম্পিউটার মেমোরিতে a রেফারেন্সে ৫টা জায়গা বানিয়ে নিলো। a[0], a[1], a[2], a[3] এবং a[4]। মোট পাঁচটা। তারপর প্রত্যেক ঘরে একটা করে সংখ্যা রাখছি। তারপর আমি যতবারই কোনও একটা সংখ্যার প্রয়োজন বোধ করবো, নির্দিষ্ট Variable এর index কে কল করে নিবো। কম্পিউটার ওই রেফারেন্স ধরে মেমোরিতে খুঁজে নিবে সেখানে কি রাখা আছে। এভাবেই Array ব্যবহার করতে হয়।

For Further Studies about Array:
    1. Tutorials Point
    2. C plus plus

Comments

Some of My Bests

ডাটা স্ট্রাকচার- স্ট্যাক (Stack)

Programming is all about data manipulation. Data structure is way of storing data for further manipulation. ডাটা স্ট্রাকচার আমাদেরকে বিভিন্ন ডাটা সাজিয়ে রাখার ব্যবস্থা করে দেয়। ডাটা সাজিয়ে রাখার অনেক গুলো "তরিকা" আছে। কোনকিছু আমরা কেন সাজিয়ে রাখি? যেন পরে নির্দিষ্ট একটা ডাটা সহজে খুঁজে পেতে পারি। "তরিকা" গুলোর নাম Array, Stack, Queue, Linked List, Tree, Graph. এগুলা শ খানেক ডাটা স্ট্রাকচারের মধ্যে কিছুর নাম, যেগুলো অনেক বেশি ব্যবহার হয়। এই পোস্টটা স্ট্যাক বুঝানোর জন্য। স্ট্যাক খুবই ইন্টেরেস্টিং একটা ডাটা স্ট্রাকচার। অনেক কারনেই এটা ব্যাবহার হয়। আগে স্ট্যাক কনসেপ্টটা নিয়ে আলোচনা করা যাক। স্ট্যাক বলতে বোঝায় একটার উপর একটা সাজায়ে রাখা। বিয়ের বাড়িতে আগে মেলামাইনের গ্লাস দেখা যেত একটার ভেতর আরেকটা ঢুকায়ে লম্বা একটা পাইল তৈরি করে একসাথে ক্যারি করা হচ্ছে। এটা একটা স্ট্যাক। প্রোগ্রামিং এর ভাষায় স্ট্যাক এক্সাক্টলি সেইম জিনিসই। তবে একটু ঘষামাজা আছে। আরেকটা উদাহরণ দেয়া যেতে পারে। বয়ামের ভেতর একটার পর আরেকটা বিস্কিট ঢুকিয়ে রাখা হয়। হ্যা, এইটা পারফেক্ট উদাহরণ হয়েছে। এই

ডাটা স্ট্রাকচার- কিউ (Queue)

Programming is all about data manipulation. Data structure is way of storing data for further manipulation. ডাটা স্ট্রাকচার আমাদেরকে বিভিন্ন ডাটা সাজিয়ে রাখার ব্যবস্থা করে দেয়। ডাটা সাজিয়ে রাখার অনেক গুলো "তরিকা" আছে। কোনকিছু আমরা কেন সাজিয়ে রাখি? যেন পরে নির্দিষ্ট একটা ডাটা সহজে খুঁজে পেতে পারি। "তরিকা" গুলোর নাম Array, Stack, Queue, Linked List, Tree, Graph. এগুলা শ খানেক ডাটা স্ট্রাকচারের মধ্যে কিছুর নাম, যেগুলো অনেক বেশি ব্যবহার হয়। এই পোস্টটা কিউ বুঝানোর জন্য। কিউ জিনিসটার সাথে আমরা সবাই পরিচিত। জীবনে আমরা সবাই কখনো না কখনো লাইনে দাঁড়ায়ছি। কিউ এর বেসিক ক্যারেক্টারিস্টিকসের সাথে মিলিয়েই প্রোগ্রামিং এ কিউ এর কনসেপ্ট। বাস্তব জীবনে একটা কিউ তে কি হয়? সবাই লাইন ধরে দাঁড়ায় কিছু একটা কারনে। যে সবার আগে দাঁড়ায় সেই সবার আগে কার্জসিদ্ধি করে। সবার পরের জন সবার পরে। স্ট্যাকের ক্ষেত্রে আমরা পড়েছিলাম Last In First Out (LIFO) or First In Last Out (FILO)। কেমন আনফেয়ার শোনায় না? সবার পরে আসবে, আবার সবার আগে চলে যাবে। অ্যাটলিস্ট আমার আনফেয়ার লেগেছিলো যখন স্ট্যাক শিখছিল

কম্পিউটার বচন

কম্পিউটারের সাথে আমার পরিচয় খুব ছোট বয়সে না। অন্তত চেনাপরিচিত বন্ধুমহলের অনেকের তুলনায় আমি বাচ্চাই বলা চলে। ক্লাস ২ বা ৩ তে পড়ি যখন ফুফাতো ভাই প্রথম কম্পিউটার কেনে। ফুফুর বাসা কাছেই হওয়ায় মাঝে মাঝেই সেটা দেখার সৌভাগ্য হতো। কিন্তু ছুয়ে দেখার সাহস তখনও হয়নি। সেই বছর থেকে আমাদের রেওয়াজ, ঈদের দিন নামাজ পড়েই সোজা ভাইয়ার রুমে। ভাইয়া নতুন একটা গেম ইন্সটল করে রাখতো আর আমরা কাজিনেরা লাইন দিয়ে সেটা খেলতাম (যদিও আমার ভাগে কমই পড়তো :p )  ক্লাস সিক্সে নতুন স্কুলে ভর্তি হলাম। এ এক আজব জায়গা। সবাই বড়লোকের পোলাপাইন। কতজন গাড়িতে করে আসে। তাদের তো কথাই নাই। যাদের গাড়ি নাই তাদেরও রোজকার বাজেট বিশাল। ইচ্ছামত উড়ায়। আর আমি মধ্যবিত্তের ছেলে। যাওয়া আসার ভাড়া বাদে কোনো টাকা পেতামনা। টিফিন বাসা থেকে বানায়ে দিতো। এই যখন আমার অবস্থা তখন ক্লাসমেটরা নিত্যনতুন গ্যাজেটের সাথে শুধু পরিচয়ই না, পকেটে নিয়ে ঘুরে (যদিও স্কুলে নিষিদ্ধ ছিলো )। সবাই এসব নিয়ে কত গল্প চালায় যায়। আর আমার মত বোকা কিছু পাবলিক হা করে এদের গল্প শুনি। কম্পিউটারের কত বচন, কত আড্ডা। এসব আড্ডায় ঢুকতে কত ইচ্ছা করতো, কিন্তু ঢুকবো কি করে? আমার কম্পিউটা