উপাত্ত সংগঠন

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে

কম্পিউটার বিজ্ঞানে উপাত্ত সংগঠন (ইংরেজি: Data structure, ডেটা স্ট্রাক্‌চার) বলতে উপাত্তকে কম্পিউটারে রাখার একটি নির্দিষ্ট উপায়কে বোঝায় যাতে উপাত্তকে দক্ষতার সাথে ব্যবহার করা যায়। যত্নের সাথে বাছাই করা উপাত্ত সংগঠন উপাত্তের উপর সবচেয়ে দক্ষ অ্যালগোরিদমের ব্যবহার সম্ভব করে তোলে। একটি সুপরিকল্পিত উপাত্ত সংগঠন মেমরি ও সময় যথাসম্ভব বাঁচিয়ে উপাত্তের উপর অনেকগুলি জরুরি অপারেশন প্রয়োগ করার ক্ষমতা দেয়। কোন একটি প্রোগ্রামিং ভাষাতে প্রদত্ত উপাত্ত টাইপ, রেফারেন্স ও অপারেশন অনুসারে উপাত্ত সংগঠনগুলি বাস্তবায়ন করা হয়।

এ্যাপ্লিকেশনের ধরণের উপর ডাটা স্ট্রাকচারের শ্রেণীবিভাগ হয়ে থাকে এবং এদের মধ্যে অনেকগুলো নির্দিষ্ট কিছু কাজের জন্য বিশেষভাবে তৈরি করা হয়। উদাহরণস্বরূপ, বি-ট্রিগুলো ডাটাবেসের ক্ষেত্রে প্রয়োগ করার জন্য বিশেষভাবে উপযুক্ত এবং রুটিং টেবিলগুলো মেশিন নেটওয়ার্কের উপর নির্ভরশীল।

বিভিন্ন ধরণের প্রোগ্রামের ডিজাইনে, ডাটা স্ট্রাকচারের বাছাইকরণ একটি অন্যতম প্রধান বিষয়। বড় ধরণের সিস্টেম তৈরির অভিজ্ঞতা থেকে জানা যায় যে, চূড়ান্ত ফলাফলের মান ও সার্থকতা অনেকাংশে শ্রেষ্ঠ ডাটা স্ট্রাকচার বাছাই করার উপর নির্ভরশীল। ডাটা স্ট্রাকচার বাছাই করার পর, এ্যালগরিদমের ব্যবহার অবশ্যম্ভাবী হয়ে ওঠে। অবশ্য কখনো এর বিপরীত পদ্ধতিও অবলম্বন করা হয় এবং এক্ষেত্রে কোন নির্দিষ্ট এ্যালগরিদমের জন্য উপযুক্ত ডাটা স্ট্রাকচার বাছাই করা হয়। উভয় ক্ষেত্রেই প্রয়োজনীয় ডাটা স্ট্রাকচারের বাছাইকরণ অত্যন্ত জরুরী।

সুসংগঠিত ডিজাইন পদ্ধতি এবং প্রোগ্রামিং ভাষাগুলোর গভীর বিশ্লেষণের মাধ্যমে জানা যায় যে, এ্যালগরিদমের বদলে ডাটা স্ট্রাকচারই হল প্রধান সাংগঠনিক উপকরণ। অনেক প্রোগ্রামিং ভাষা বেশ কিছু মডিউল সিস্টেম ব্যবহার করে যার মাধ্যমে বিভিন্ন এ্যাপ্লিকেশনের জন্য ডাটা স্ট্রাকচারগুলো ব্যবহার করা যায়। এজন্য নিয়ন্ত্রিত ইণ্টারফেসের আড়ালে তাদের সুনির্দিষ্ট প্রয়োগপদ্ধতিগুলো আড়াল করে রাখা হয়। অবজেক্ট-ওরিয়েণ্টড প্রোগ্রামিং ভাষা যেমন সি++ এবং জাভা এই উদ্দেশ্য বিভিন্ন ক্লাস ব্যবহার করে।

ডাটা স্ট্রাকচারের অত্যাধিক গুরুত্বের কারণে অনেক প্রোগ্রামিং ভাষার লাইব্রেরিতে এদের অন্তর্ভূক্ত করা হয়। সি++ এর স্ট্যাণ্ডার্ড টেমপ্লেট লাইব্রেরী কণ্টেইনার্স, জাভার কালেকশন্স ফ্রেমওয়ার্ক এবং মাইক্রোসফটের .নেট ফ্রেমওয়ার্কে এই পদ্ধতি অবলম্বন করা হয়।

অ্যারে, স্ট্যাক, কিউ, লিংকড লিস্ট, ট্রি, গ্রাফ, ইত্যাদি কতগুলি বহুল ব্যবহৃত উপাত্ত সংগঠন। ডাটা স্ট্রাকচার ইম্লিমেণ্টেশন বা ইণ্টারফেসের প্রতিনিধিত্ব করে। একটি ডাটা স্ট্রাকচারকে দু’টি ফাংশনের মাঝে একটি ইণ্টারফেস হিসেবে দেখা যায় বা সংশ্লিষ্ট ডাটা টাইপের মাধ্যমে সাজানো ও সংরক্ষিত তথ্যভাণ্ডার প্রয়োগ করার একটি পদ্ধতি হিসেবে দেখা যায়।