প্রোগ্রামাররা যখন "ডেটা স্ট্রাকচার" সম্পর্কে কথা বলেন, তারা কী উল্লেখ করছেন?


18

প্রোগ্রামাররা যখন "ডেটা স্ট্রাকচার" সম্পর্কে কথা বলে, তারা কি কেবল তালিকা , গাছ , হ্যাশ , গ্রাফ ইত্যাদির মতো বিমূর্ত তথ্যের বিষয়ে কথা বলছে ?

বা এই শব্দটির মধ্যে এমন কোনও কাঠামো অন্তর্ভুক্ত রয়েছে যা সংযুক্ত প্রকারের (শ্রেণি অবজেক্টস, স্ট্রাক্টস, এনমস, ইত্যাদি) এবং আদিম ধরণের (বুলিয়ান, ইনট, চর, ইত্যাদি) ডেটা ধারণ করে ?

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

অনলাইনে ঘুরে দেখার সময় আমি অন্যান্য জায়গাগুলি দেখতে পাই যা প্রোগ্রামিং অর্থে "ডেটা স্ট্রাকচার" শব্দটি উল্লেখ করে কেবল বিমূর্ত তথ্য প্রকারের উল্লেখ করে যেমন স্টনি ব্রুক বিশ্ববিদ্যালয়ের কম্পিউটার বিজ্ঞান বিভাগের এই বক্তৃতায় বলা হয়েছে

একটি ডেটা স্ট্রাকচার একটি নির্দিষ্ট বিমূর্ত ডেটা ধরণের প্রকৃত বাস্তবায়ন।

বা ডেটা স্ট্রাকচারের উপর এই উইকিবুক , যা বাক্যগুলিতে এই শব্দটি ব্যবহার করে:

যেহেতু ডেটা স্ট্রাকচারগুলি উচ্চ-স্তরের বিমূর্ততা রয়েছে তাই তারা আমাদের কাছে উপাত্তের গোষ্ঠীগুলির ক্রিয়াকলাপ উপস্থাপন করে যেমন একটি তালিকায় কোনও আইটেম যুক্ত করা বা একটি সারিতে সর্বোচ্চ-অগ্রাধিকারের আইটেম সন্ধান করা as

সুতরাং যখন আমি প্রোগ্রামাররা যখন কেবল "ডেটা স্ট্রাকচার" শব্দটি ব্যবহার করি তখন জটিল ডেটা স্ট্রাকচার বা বিমূর্ত ডেটা ধরণের উল্লেখ করে কেন শুনি? অভিধান সংজ্ঞা চেয়ে প্রোগ্রামারদের কি এই শব্দটির জন্য আলাদা সংজ্ঞা আছে?


1
শব্দটি সময়ের সাথে সাথে বিকশিত হয়েছিল। সিএস ভিড় সাধারণত জেনেরিক ধরণের কাঠামোর জন্য শব্দটি ব্যবহার করে যা সম্পর্কিত তথ্যগুলির একাধিক আইটেম (লিঙ্কযুক্ত তালিকাগুলি, গাছ ইত্যাদি ...) ধরে রাখতে পারে
ওডে

1
এটা কি শুধু একটি পরিভাষা জিনিস? একটি স্ট্রিং আসলে চরগুলির একটি অ্যারে এবং এটি একটি ডেটা স্ট্রাকচার যা পৃথক
চরিত্রগুলির

3
"ডেটা স্ট্রাকচার" কি একটি স্ব-সংজ্ঞায়িত শব্দ নয়? এটি ডেটা সংরক্ষণের জন্য কোনও কাঠামো! প্রশ্নটি গুরুত্ব সহকারে নেওয়া এক ধরণের কঠিন কাজ।
মাইকেল কে

1
@ রাচেল তাই আপনার প্রশ্নটি আসলে আদিম উপাত্তগুলি ডেটা স্ট্রাকচার কিনা? if programmers mean something different when they talk about data structuresএখনও মতামত জন্য পোলিং হয়।
ইয়ান্নিস

2
"আদিম" সম্পূর্ণরূপে সুযোগের উপর নির্ভর করে। বাইনারি স্তরে কোনও ইনট হিসাবে কোনও জিনিস নেই, উদাহরণস্বরূপ। এমনকি নিম্ন স্তরে এমনকি বিটসও নেই - কেবল বৈদ্যুতিক পক্ষপাতিত্ব। আবার এটি একটি স্ব-সংজ্ঞায়িত শব্দ - মোটেই ভাল প্রশ্ন নয়।
মাইকেল কে

উত্তর:


20

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

তবে প্রোগ্রামারদের কাছে এই শব্দটির আরও একটি অর্থ রয়েছে।

যেহেতু শব্দ "ডাটা স্ট্রাকচার" তাই বিস্তৃত, ডেভেলপারদের সাধারণত একটি আরও নির্দিষ্ট শব্দটি ব্যবহার করা হয় সনাক্ত করতে তারা যেমন বলছ classবা data objectবা primitive type, এবং নির্দিষ্ট সবচেয়ে জটিল বা বিমূর্ত ধরনের তথ্য জন্য ব্যবহৃত শব্দ "ডাটা স্ট্রাকচার" হয়

এ কারণেই আপনি শুনতে পান যে "ডেটা স্ট্রাকচার" প্রায়শই অ্যারেজ, তালিকা, গাছ এবং হ্যাশটেবিলের মতো বিমূর্ত ডেটা ধরণের জন্য ব্যবহৃত হয় এবং আদিম ডেটা ধরণের মতো নয়


4
আমি মনে করি গ্রাফগুলি খুব সাধারণ তবে তারা সাধারণ লাইব্রেরিতে খুব কমই উপস্থাপিত হয় কারণ তারা জেনেরিক এবং দক্ষ উপায়ে তৈরি করা খুব শক্ত।
ক্লাইম

সুতরাং প্রোগ্রামাররা যখন "ডেটা স্ট্রাকচার" সম্পর্কে কথা বলেন, তারা সাধারণত বিমূর্ত ডেটা ধরণের কথা বলছেন ? এবং যদিও আদিম ধরণের (যেমন ইনট, বুল, বা চর) এবং যৌগিক প্রকারগুলি (শ্রেণি, কাঠামো, বা এনামের মতো) এখনও প্রোগ্রামারদের দ্বারা ডেটা স্ট্রাকচার হিসাবে বিবেচনা করা হয় তবে এগুলি সাধারণত বিভিন্ন পদ দ্বারা উল্লেখ করা হয়?
রাচেল

1
@ রাচেল প্রযুক্তিগতভাবে ডেটা স্ট্রাকচারটি পয়েন্টার / ক্লাস Ect ব্যবহার করে হোমব্রেড বাস্তবায়ন হতে পারে। আমি সি ++ হোমওয়ার্ক অ্যাসাইনমেন্টের অংশ হিসাবে তালিকার মতো কিছু খুব কুৎসিত "ডেটা স্ট্রাকচার" তৈরি করেছি। আমরা কেবল ক্লাসের ডেটা স্ট্রাকচারগুলিকে প্রায়শই কল করি না কারণ তারা সাধারণত আরও নির্দিষ্ট কিছু।
বেন ব্রোকা

@ বেনব্রোকা আহ, সুতরাং "ডেটা স্ট্রাকচার" একটি বিস্তৃত শব্দ যা এই অন্যান্য অবজেক্টগুলিকে আবৃত করে, তবে তথ্য কাঠামোগুলির বিষয়ে কথা বলার সময় আরও নির্দিষ্ট হওয়া ভাল এবং "আদিম ডেটা টাইপ" বা "ডেটা অবজেক্ট" এর পরিবর্তে শব্দ ব্যবহার করা ভাল better "তথ্য কাঠামো". আর অবজেক্টের জন্য সাধারণভাবে ব্যবহৃত নির্দিষ্ট মেয়াদ পছন্দ Lists, Trees, Graphs, ইত্যাদি শুধু "ডাটা স্ট্রাকচার" হতে হবে
রেচেল

1
@ রাচেল হ্যাঁ, যদিও সবকিছুই একটি ডেটা স্ট্রাকচার (কঠোরভাবে বলা) 'ডেটা স্ট্রাকচার' শব্দটি সাধারণত সেই বিমূর্ত ডেটা ধরণের বোঝায়। আমি বলব ডেভেলপারের দৃষ্টিকোণ থেকে 'ডেটা স্ট্রাকচার' শব্দটি বোঝায় যে সে কীভাবে ডেটা সংরক্ষণ করছে। এটি মেমরি তালিকার একটি, ডিস্কের একটি ফাইল হতে পারে বা তিনি নিজে প্রয়োগ করেছেন এমন কাস্টম ডেটা কাঠামো হতে পারে।
অ্যালেক্স 14

5

শব্দটি যদিও ভালো জিনিস, উভয় বোঝায় intsএবং booleansসাধারণত আদিম ধরনের তথ্য (অথবা আদিম ডাটা স্ট্রাকচার) বিবেচনা করা হয়। শব্দটি নিজেই এমন কোনও কিছুকে রেফার করে যা নির্দিষ্ট উপায়ে ডেটা সঞ্চয় করে। অবশ্যই intএই সংজ্ঞাটির সাথে হ্যাশ টেবিলের মতো কিছু মিলবে, কেবল এটি সহজ।

সাধারণত, যখন লোকেরা ডেটা স্ট্রাকচার ব্যবহার করে, তখন তারা আরও জটিল ডেটা স্ট্রাকচারকে বোঝায়, এবং সরলগুলি নয় বরং উভয়ই সংজ্ঞাটি পূরণ করে।


2
আমি মনে করি না যে আমি কখনও শুনেছি যে কেউ intএকটি "ডেটা স্ট্রাকচার" হিসাবে উল্লেখ করেছেন ।
কিওয়ার্টি

2
@ কিওয়ার্টি আমাকে না, তবে এখনও এটিই। এটিকে প্রায়শই একটি "ডেটা টাইপ" বলা হয় তবে এটি "ডেটা স্ট্রাকচার" হিসাবে একই জিনিসটির অর্থ
ওলেকসী

0

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

সুতরাং, একটি ডেটা টাইপ আমরা এতে যে ডেটা সঞ্চয় করে রেখেছি তা জানায় tells এটি পূর্ণসংখ্যা, দশমিক, অক্ষর, স্ট্রিং বা কোনও বস্তু হতে পারে। এটি বিমূর্ত তথ্য প্রকারের পাশাপাশি সংমিশ্রিত প্রকার বা আদিম ধরণের হতে পারে।

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.