লিঙ্কড লিস্ট: সংশোধিত সংস্করণের মধ্যে পার্থক্য

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে
বিষয়বস্তু বিয়োগ হয়েছে বিষয়বস্তু যোগ হয়েছে
MdsShakil (আলোচনা | অবদান)
Rifat Hasan Rabbi-এর সম্পাদিত সংস্করণ হতে Khalid Hasan Shohag-এর সম্পাদিত সর্বশেষ সংস্করণে ফেরত
ট্যাগ: পুনর্বহাল মোবাইল সম্পাদনা মোবাইল ওয়েব সম্পাদনা উচ্চতর মোবাইল সম্পাদনা
Khalid Hasan Shohag (আলোচনা | অবদান)
সম্পাদনা সারাংশ নেই
১ নং লাইন: ১ নং লাইন:
কম্পিউটার বিজ্ঞানে, লিঙ্কড লিস্ট হচ্ছে ডাটাসমূহের লিনিয়ার (পরপর) কালেকশন যাদের অর্ডার বা ক্রম মেমরিতে তাদের অবস্থান অনুযায়ী নির্ধারিত হয় না। এই ধরণের ডাটা স্ট্রাকচারে, বিভিন্ন নোড একসাথে মিলে একটা লিনিয়ার সিকোয়েন্স গঠন করে। প্রত্যেক নোডে দুইটা অংশ থাকে; প্রথম অংশে ডাটা এবং দ্বিতীয় অংশে এর পরের নোডের একটা রেফারেন্স থাকে যার মাধ্যমে পরের নোডের সাথে এই নোডের একটা লিংক হয়। এই স্ট্রাকচারে, ইটেরেশনে (লুপ চালানো) সিকোয়েন্সের যেকোনো জায়গায় ডাটা যোগ বা বাদ দেয়া কার্যকর (ইফিশিয়েন্ট) সময়ের মধ্যেই করা যায়। লিঙ্কড লিস্টের একটা অসুবিধা হচ্ছে, ডাটা একসেস করতে লিনিয়ার সময় নেওয়া। এদিক দিয়ে অ্যারে ভালো সুবিধা দেয়, যেকোনো ডাটা খুব সহজেই একসেস করা যায়।
কম্পিউটার বিজ্ঞানে, লিঙ্কড লিস্ট হচ্ছে ডাটাসমূহের লিনিয়ার (পরপর) কালেকশন যাদের অর্ডার বা ক্রম মেমরিতে তাদের অবস্থান অনুযায়ী নির্ধারিত হয় না। এই ধরণের ডাটা স্ট্রাকচারে, বিভিন্ন নোড একসাথে মিলে একটা লিনিয়ার সিকোয়েন্স গঠন করে। প্রত্যেক নোডে দুইটা অংশ থাকে; প্রথম অংশে ডাটা এবং দ্বিতীয় অংশে এর পরের নোডের একটা রেফারেন্স থাকে যার মাধ্যমে পরের নোডের সাথে এই নোডের একটা লিংক হয়। এই স্ট্রাকচারে, ইটেরেশনে (লুপ চালানো) সিকোয়েন্সের যেকোনো জায়গায় ডাটা যোগ বা বাদ দেয়া কার্যকর (ইফিশিয়েন্ট) সময়ের মধ্যেই করা যায়। লিঙ্কড লিস্টের একটা অসুবিধা হচ্ছে, ডাটা একসেস করতে লিনিয়ার সময় নেওয়া। এদিক দিয়ে অ্যারে ভালো সুবিধা দেয়, যেকোনো ডাটা খুব সহজেই একসেস করা যায়।
[[চিত্র:Singly-linked-list.svg|কেন্দ্র|ফ্রেম|একটা লিঙ্কড লিস্ট যার নোডসমূহে দুইটা অংশ: একটা ইন্টিজার ভ্যালু এবং পরের নোডের জন্য লিংক বা রেফারেন্স। শেষ নোডকে একটা টার্মিনেটর বা নাল ভ্যালুর সাথে লিংক করা হয়েছে, যার মাধ্যমে লিস্টের শেষ বোঝানো হয়েছে।]]
[[চিত্র:Singly-linked-list.svg|কেন্দ্র|ফ্রেম|একটা লিঙ্কড লিস্ট যার নোডসমূহে দুইটা অংশ: একটা ইন্টিজার ভ্যালু এবং পরের নোডের জন্য লিংক বা রেফারেন্স। শেষ নোডকে একটা টার্মিনেটর বা নাল ভ্যালুর সাথে লিংক করা হয়েছে, যার মাধ্যমে লিস্টের শেষ বোঝানো হয়েছে।]]
এর প্রধান সুবিধা হচ্ছে লিস্টে ডাটা যোগ বা বাদ দেওয়া খুবই সহজ, কারণ এতে অ্য্যারের মত পুরো স্ট্রাকচার পুনরায় একই সিকোয়েন্সে মেমোরিতে সাজানো লাগে না। কারণ লিঙ্কড লিস্ট এ নোডগুলো মেমোরিতে পাশাপাশি না থেকে এলমেলো ভাবে থাকে। ডায়নামিক হওয়ায় প্রয়োজন অনুযায়ী লিস্ট বাড়ানো বা কমানো যায়।

== ইতিহাস ==
১৯৫৫-১৯৫৬ এর দিকে প্রাথমিক ডাটা স্ট্রাকচার হিসেবে '''এলেন নিউয়েল, ক্লিফ শ''' এবং '''হার্বাট শিমন''' র‍্যান্ড কর্পোরেশনে তাদের ইনফরমেশন ল্যাঙ্গুয়েজ প্রসেসিংয়ের প্রয়োজনে তৈরি করেন। এছাড়া ১৯৫৩ সালে '''হ্যান্স পিটার লুন''' আইবিএমে লেখা চিঠিতে, হ্যাশ টেবিলে লিঙ্কড লিস্ট ব্যবহারের পরামর্শ দেন।<ref name="knuth">
{{cite book
| first=Donald |last=Knuth |author1-link=Donald Knuth
| title = The Art of Computer Programming
| volume = 3: ''Sorting and Searching''
| edition = 2nd
| publisher = Addison-Wesley
| year = 1998
| isbn = 978-0-201-89685-5
| pages = 547
}}
</ref>

১১:৫৯, ১৮ জুন ২০২১ তারিখে সংশোধিত সংস্করণ

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

একটা লিঙ্কড লিস্ট যার নোডসমূহে দুইটা অংশ: একটা ইন্টিজার ভ্যালু এবং পরের নোডের জন্য লিংক বা রেফারেন্স। শেষ নোডকে একটা টার্মিনেটর বা নাল ভ্যালুর সাথে লিংক করা হয়েছে, যার মাধ্যমে লিস্টের শেষ বোঝানো হয়েছে।

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

ইতিহাস

১৯৫৫-১৯৫৬ এর দিকে প্রাথমিক ডাটা স্ট্রাকচার হিসেবে এলেন নিউয়েল, ক্লিফ শ এবং হার্বাট শিমন র‍্যান্ড কর্পোরেশনে তাদের ইনফরমেশন ল্যাঙ্গুয়েজ প্রসেসিংয়ের প্রয়োজনে তৈরি করেন। এছাড়া ১৯৫৩ সালে হ্যান্স পিটার লুন আইবিএমে লেখা চিঠিতে, হ্যাশ টেবিলে লিঙ্কড লিস্ট ব্যবহারের পরামর্শ দেন।[১]

  1. Knuth, Donald (১৯৯৮)। The Art of Computer Programming। 3: Sorting and Searching (2nd সংস্করণ)। Addison-Wesley। পৃষ্ঠা 547। আইএসবিএন 978-0-201-89685-5