আজকের পোস্টে আমাদের আলোচনার বিষয় হলো ডাটা স্ট্রাকচার কি। ডাটা স্ট্রাকচারে ডেটা একটি নির্দিষ্ট ধরনের ফরম্যাটে সংরক্ষণ করা হয়। আসুন জেনে নিই এই ডাটা স্ট্রাকচার সম্পর্কে খুঁটিনাটি।
ডাটা স্ট্রাকচার কি
ডাটা স্ট্রাকচার হল প্রোগ্রামিং ভাষার একটি গুরুত্বপূর্ণ অংশ যা ডেটা সংরক্ষণ, অ্যাক্সেস এবং প্রস্তুত করার জন্য ব্যবহৃত হয়। ডাটা স্ট্রাকচার এর মাধ্যমে প্রোগ্রামাররা ডেটাকে ক্ষমতার উপরে পরিচালনা করতে পারেন এবং প্রয়োজনীয় পরিবর্তনগুলি করতে পারেন।
ডাটা স্ট্রাকচারে ডেটা একটি নির্দিষ্ট ধরনের ফরম্যাটে সংরক্ষণ করা হয়। প্রোগ্রামাররা ডেটা স্ট্রাকচার ব্যবহার করে কম্পিউটারের মেমোরিতে ডেটা সংরক্ষণ করতে পারেন এবং ডেটা স্ট্রাকচারের মাধ্যমে ডেটা পার্স করতে পারেন।
ডাটা স্ট্রাকচারে একটি বিশেষ ধরনের ডেটা পরিচিত হয় যা একটি সিনট্যাক্স দ্বারা বর্ণিত হয়। স্ট্রাকচারে বিভিন্ন ধরনের ডেটা সংরক্ষণ করা যায়, যেমন ইন্টিজার, ফ্লোটিং পয়েন্ট, চার, স্ট্রিং, অবজেক্ট ইত্যাদি।
ডাটা স্ট্রাকচার সম্পর্কিত কিছু উদাহরণ হল:
অ্যারে: একটি ডাটা স্ট্রাকচার যা একাধিক এলিমেন্ট সংরক্ষণ করতে পারে। একটি অ্যারে একটি সিনট্যাক্স দ্বারা বর্ণিত হয় এবং প্রতিটি এলিমেন্ট একটি ইনডেক্স ব্যবহার করে অ্যাক্সেস করা যায়।
স্ট্যাক: একটি স্ট্যাক ডাটা স্ট্রাকচার যা প্রথম ইন প্রথম আউট (First In First Out) অথবা শেষ ইন প্রথম আউট (Last In First Out) করে ডেটা সংরক্ষণ করে। স্ট্যাকে একটি সিনট্যাক্স দ্বারা সংরক্ষিত হয় এবং প্রথম ইন প্রথম আউট হলে এটি স্ট্যাক, যখন শেষ ইন প্রথম আউট হলে এটি কিউ বলা হয়।
লিঙ্কড লিস্ট: একটি ডাটা স্ট্রাকচার যা একাধিক নোড সংরক্ষণ করে এবং একটি নোড আরেকটি নোডের সাথে লিঙ্ক করা হয়। লিঙ্কড লিস্টে প্রতিটি নোড একটি ডাটা ফিল্ড এবং একটি পয়েন্টার ফিল্ড রাখে যা পরে ব্যাবহার করা যায়।
লিঙ্কড লিস্টে প্রতিটি নোড একটি ডাটা ফিল্ড এবং একটি পয়েন্টার ফিল্ড রাখে যা পরবর্তী নোডের ঠিকানা সংরক্ষণ করে। একটি লিঙ্কড লিস্ট এর মাধ্যমে প্রথম নোড বা শুরুর নোড অ্যাক্সেস করা যায় এবং প্রথম নোড হলে এর মানে হল হেড এবং শেষ নোড বা সর্বশেষ নোড হলে এর মানে হল টেইল।
হ্যাশ টেবিল: একটি ডাটা স্ট্রাকচার যা হ্যাশিং ফাংশন ব্যবহার করে ডাটা সংরক্ষণ করে। হ্যাশ টেবিলে ডেটা একটি কী এবং এর মান সংরক্ষণ করা হয় এবং কী ব্যবহার করে ডেটা অ্যাক্সেস করা হয়। হ্যাশ টেবিল একটি দ্বিতীয় স্টেজ অ্যালগরিদম ব্যবহার করে ডেটা অ্যাক্সেস করে।
ট্রি: একটি ডাটা স্ট্রাকচার যা হাইয়ারাকি তথ্য সংরক্ষণ করতে ব্যবহৃত হয়।
একটি ট্রি নোড একটি মান সংরক্ষণ করে এবং একটি বা একাধিক শাখা থাকতে পারে। একটি বাইনারি সার্চ ট্রি একটি হাইয়ারাকি ট্রি যা অ্যাডভান্সড ট্রি অ্যালগরিদম ব্যবহার করে তৈরি করা হয়। বাইনারি সার্চ ট্রি একটি বিশাল ডেটাবেজ থেকে তথ্য অ্যাক্সেস করতে ব্যবহৃত হয়।
স্ট্যাক একটি একটি লিস্ট যা একক পাশে ডাটা পুশ এবং পপ করা হয়। স্ট্যাক একটি লাইফো ডাটা স্ট্রাকচার, অর্থাৎ যে আইটেম প্রথমে প্রবেশ করে তাকে প্রথমে বের করা যায়। স্ট্যাক ডেটা স্ট্রাকচারটি প্রথম প্রবেশ করা এবং প্রথম সরিয়ে দেওয়া যায়। কিউ একটি ডাটা স্ট্রাকচার যা একক পাশে ডাটা ইনসার্ট এবং ডিলিট করতে পারে। কিউ হল ফার্স্ট ইন ফার্স্ট আউট (FIFO) ডাটা স্ট্রাকচার।
হ্যাশটেবিল একটি ডাটা স্ট্রাকচার যা সাধারণত কী এবং ভ্যালু একসঙ্গে সংরক্ষণ করে। হ্যাশটেবিল ব্যবহার করে ডেটা খুব দ্রুত অ্যাক্সেস করা যায়। হ্যাশটেবিল সাধারণত হ্যাশ ফাংশন ব্যবহার করে সংরক্ষিত ডেটার একটি ইন্ডেক্স তৈরি করে যা সম্পূর্ণভাবে অদ্বিতীয়।
গ্রাফ একটি ডাটা স্ট্রাকচার যা একটি সেট এবং সেট এর মধ্যে এসোসিয়েটেড কনেকশনগুলি সংরক্ষণ করে। গ্রাফ একটি ব্যাক্তিগত কন্টেন্ট সম্পন্ন না ডাটা স্ট্রাকচার। গ্রাফ দ্বারা সমস্যাগুলি সমাধান করা যায় যেখানে ডেটা এবং ডেটা মধ্যে সম্পর্ক আছে। হিপ একটি পারফেক্ট বাইনারি ট্রি যা যথাক্রমে সম্পূর্ণভাবে ফিল আপ করা হয়। হিপ একটি স্পেশালাইজড ডাটা স্ট্রাকচার যা ডেটা প্রথম সরিয়ে দেওয়া যায়।
স্ট্যাক একটি ডাটা স্ট্রাকচার যা প্রথম-আউট-লাস্ট-ইন এবং লাস্ট-ইন প্রথম-আউট-লাস্ট অপারেশন সমর্থিত করে। স্ট্যাকে কোনো ডেটা প্রবেশ ও প্রস্থান একটি স্ট্যাক পয়েন্টার দ্বারা নির্দেশিত হয়।
কিউ একটি ডাটা স্ট্রাকচার যা ফার্স্ট-ইন-ফার্স্ট-আউট এবং লাস্ট-ইন-লাস্ট-আউট অপারেশন সমর্থিত করে। কিউ সাধারণত বাফার সমান কাজ করে, যেখানে প্রথমে প্রবেশ করা উচিত সে প্রথমে প্রস্থান করা হবে।
ডাবলিং অ্যারে একটি ডাটা স্ট্রাকচার যা স্প্যাস প্রভৃতির জন্য দুটি সমান সাইজের অ্যারে ব্যবহার করে। ডাবলিং অ্যারে ব্যবহার করে স্পেস ও টাইম কমপ্লেক্সিটি কমানো যায়।
ট্রাই একটি ডাটা স্ট্রাকচার যা স্ট্রিংস এবং অন্যান্য সিকোয়েন্স ডেটা টাইপস সংরক্ষণ করে।