অ্যারে এবং লিঙ্কযুক্ত তালিকার মধ্যে পার্থক্য
কন্টেন্ট
- তুলনা রেখাচিত্র
- অ্যারের সংজ্ঞা
- আসুন অ্যারে সম্পর্কে মনে রাখার মতো কয়েকটি ধারণাটি দেখুন:
- অ্যারেতে করা অপারেশনগুলি হ'ল:
- উদাহরণ
- সংযুক্ত তালিকার সংজ্ঞা
- সংযুক্ত তালিকায় সম্পাদিত অপারেশনগুলি হ'ল:
- উদাহরণ
- উপসংহার
মধ্যে প্রধান পার্থক্য বিন্যাস এবং যোজিত তালিকা তাদের কাঠামোর প্রতি শ্রদ্ধা। অ্যারে হয় সূচক ভিত্তিক ডাটা স্ট্রাকচার যেখানে প্রতিটি উপাদান সূচকের সাথে যুক্ত থাকে। অন্যদিকে, লিঙ্কযুক্ত তালিকার উপর নির্ভর করে রেফারেন্স যেখানে প্রতিটি নোডে পূর্ববর্তী এবং পরবর্তী উপাদানগুলির ডেটা এবং রেফারেন্স থাকে।
মূলত, একটি অ্যারে হ'ল একটি সাধারণ শিরোনাম বা ভেরিয়েবল নামের অধীনে ক্রমযুক্ত মেমরি অবস্থানগুলিতে সঞ্চিত অনুরূপ ডেটা অবজেক্টগুলির একটি সেট।
লিঙ্কযুক্ত তালিকাটি এমন একটি ডাটা স্ট্রাকচার যা এতে উপাদানগুলির ক্রম থাকে যেখানে প্রতিটি উপাদান তার পরবর্তী উপাদানগুলির সাথে যুক্ত থাকে। সংযুক্ত তালিকার একটি উপাদানটিতে দুটি ক্ষেত্র রয়েছে। একটি হ'ল ডেটা ক্ষেত্র, এবং অন্যটি লিংক ক্ষেত্র, ডেটা ফিল্ডে সংরক্ষণ এবং প্রক্রিয়াজাতকরণের আসল মান থাকে। তদ্ব্যতীত, লিঙ্ক ক্ষেত্রটি লিঙ্কযুক্ত তালিকায় পরবর্তী ডেটা আইটেমের ঠিকানা ধারণ করে। নির্দিষ্ট নোড অ্যাক্সেস করতে ব্যবহৃত ঠিকানাটি পয়েন্টার হিসাবে পরিচিত।
একটি অ্যারে এবং লিঙ্কযুক্ত তালিকার মধ্যে আরেকটি উল্লেখযোগ্য পার্থক্য হ'ল অ্যারের একটি নির্দিষ্ট আকার থাকে এবং এটি পূর্বে ঘোষিত করা প্রয়োজন, তবে লিঙ্কযুক্ত তালিকাগুলি আকারের মধ্যে সীমাবদ্ধ নয় এবং সম্পাদনকালে চুক্তিবদ্ধ হয়।
- তুলনা রেখাচিত্র
- সংজ্ঞা
- মূল পার্থক্য
- উপসংহার
তুলনা রেখাচিত্র
তুলনা করার জন্য বেস | বিন্যাস | যোজিত তালিকা |
---|---|---|
মৌলিক | এটি নির্দিষ্ট আইটেম আইটেমের একটি সামঞ্জস্যপূর্ণ সেট। | এটি একটি আদেশযুক্ত সেট যা ভেরিয়েবল সংখ্যক ডেটা আইটেম সমন্বিত। |
আয়তন | ঘোষণার সময় সুনির্দিষ্ট | নির্দিষ্ট করার দরকার নেই; কার্যকর এবং সঞ্চালনের সময় সঙ্কুচিত। |
স্টোরেজ বরাদ্দ | সংকলনের সময় এলিমেন্ট অবস্থান বরাদ্দ করা হয়। | উপাদান সময় রান সময় নির্ধারিত হয়। |
উপাদান ক্রম | ধারাবাহিকভাবে সঞ্চিত | এলোমেলোভাবে সংরক্ষণ করা |
উপাদান অ্যাক্সেস করা | প্রত্যক্ষ বা এলোমেলোভাবে অ্যাক্সেস করা, অর্থাৎ অ্যারে সূচক বা সাবস্ক্রিপ্ট উল্লেখ করুন। | ধারাবাহিকভাবে অ্যাক্সেস করা, অর্থাত্ পয়েন্টার দ্বারা তালিকার প্রথম নোড থেকে শুরু ট্রাভার্স। |
উপাদান সন্নিবেশ এবং মোছা | তুলনামূলকভাবে ধীরে ধীরে স্থানান্তরিত হওয়া প্রয়োজন। | সহজ, দ্রুত এবং দক্ষ। |
অনুসন্ধানের | বাইনারি অনুসন্ধান এবং লিনিয়ার অনুসন্ধান | রৈখিক অনুসন্ধান |
স্মৃতি দরকার required | কম | অধিক |
স্মৃতি ব্যবহার | অকার্যকর | দক্ষ |
অ্যারের সংজ্ঞা
একটি অ্যারে সমজাতীয় উপাদান বা ডেটা আইটেমগুলির একটি নির্দিষ্ট সংখ্যার সেট হিসাবে সংজ্ঞায়িত করা হয়। এর অর্থ একটি অ্যারেতে কেবল এক ধরণের ডেটা থাকতে পারে, হয় সমস্ত পূর্ণসংখ্যার, সমস্ত ভাসমান-পয়েন্ট সংখ্যা বা সমস্ত অক্ষর। একটি অ্যারের ঘোষণা নিম্নরূপ:
int a;
যেখানে int তথ্য টাইপ বা টাইপ উপাদান অ্যারে স্টোর নির্দিষ্ট করে। “ক” একটি অ্যারের নাম, এবং বর্গাকার বন্ধনীর ভিতরে নির্দিষ্ট নম্বরটি অ্যারে সংরক্ষণ করতে পারে এমন উপাদানগুলির সংখ্যা, এটি অ্যারের আকার বা দৈর্ঘ্যও বলা হয়।
আসুন অ্যারে সম্পর্কে মনে রাখার মতো কয়েকটি ধারণাটি দেখুন:
- বর্গাকার বন্ধনীগুলির মধ্যে সূচকের নাম বা সাবস্ক্রিপ্ট (অ্যারের মধ্যে উপাদানটির অবস্থান নির্ধারণ করে) এর পরে অ্যারের পৃথক উপাদানগুলি ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, অ্যারের 5 তম উপাদান পুনরুদ্ধার করতে আমাদের একটি বিবৃতি লিখতে হবে।
- যে কোনও ক্ষেত্রে একটি অ্যারের উপাদানগুলি একটানা মেমরির স্থানে সংরক্ষণ করা হবে।
- অ্যারের প্রথম উপাদানটির সূচক শূন্য রয়েছে। এর অর্থ প্রথম এবং শেষ উপাদান যথাক্রমে একটি এবং একটি হিসাবে নির্দিষ্ট করা হবে।
- অ্যারেতে থাকা উপাদানগুলির সংখ্যা, অর্থাত্, একটি অ্যারের আকার বা তার দৈর্ঘ্য নিম্নলিখিত সমীকরণ দ্বারা দেওয়া হয়:
(উপরের বাউন্ড-লোয়ার বাউন্ড) + 1
উপরের অ্যারেগুলির জন্য, এটি হবে (9-0) + 1 = 10। যেখানে 0 টি অ্যারের নিম্ন সীমানা এবং 9 টি অ্যারের উপরের সীমানা। - অ্যারেগুলি লুপের মাধ্যমে পড়তে বা লেখা যায়। যদি আমরা এক-মাত্রিক অ্যারেটি পড়ি তবে এর পড়ার জন্য একটি লুপ প্রয়োজন হয় এবং অ্যারে লেখার জন্য (অন্যথায়) অন্যটি উদাহরণস্বরূপ:
ক। একটি অ্যারে পড়ার জন্য
(i = 0; i <= 9; i ++) এর জন্য
{স্ক্যানফ ("% d", & ক); }
B ইংরেজী বর্ণমালার দ্বিতীয় অক্ষর. একটি অ্যারে লেখার জন্য
(i = 0; i <= 9; i ++) এর জন্য
{চ ("% d", ক); } - ২-ডি অ্যারের ক্ষেত্রে এটির জন্য দুটি লুপ প্রয়োজন হয় এবং একইভাবে এন-ডাইমেনশনাল অ্যারেতে এন লুপের প্রয়োজন হয়।
অ্যারেতে করা অপারেশনগুলি হ'ল:
- অ্যারে তৈরি
- একটি অ্যারে অনুসরণ করে
- নতুন উপাদান সন্নিবেশ
- প্রয়োজনীয় উপাদানগুলি মুছে ফেলা হচ্ছে।
- একটি উপাদান পরিবর্তন।
- অ্যারে মার্জ করা হচ্ছে
উদাহরণ
নিম্নলিখিত প্রোগ্রামটি অ্যারে পড়ার এবং লেখার চিত্র তুলে ধরেছে।
# অন্তর্ভুক্ত
# অন্তর্ভুক্ত
অকার্যকর প্রধান ()
{
int a, i;
f ("অ্যারে লিখুন");
(i = 0; i <= 9; i ++) এর জন্য
{
স্ক্যানফ ("% d", & ক);
}
f ("অ্যারে লিখুন");
(i = 0; i <= 9; i ++) এর জন্য
{
f ("% d n", ক);
}
getch ();
}
সংযুক্ত তালিকার সংজ্ঞা
লিঙ্কযুক্ত তালিকাটি একে অপরের সাথে যুক্ত কিছু ডেটা উপাদানগুলির একটি নির্দিষ্ট তালিকা। এটিতে প্রতিটি উপাদান পরবর্তী উপাদানগুলিতে নির্দেশ করে যা যৌক্তিক ক্রমকে প্রতিনিধিত্ব করে। প্রতিটি উপাদানকে নোড বলা হয়, যার দুটি অংশ রয়েছে।
তথ্য অংশ এবং INFO অংশ যা পরবর্তী উপাদানটির দিকে নির্দেশ করে P আপনি যেমন ঠিকানা সংরক্ষণ করার জন্য জানেন, আমাদের সিতে পয়েন্টার নামক একটি অনন্য ডেটা স্ট্রাকচার রয়েছে। সুতরাং তালিকার দ্বিতীয় ক্ষেত্রটি অবশ্যই পয়েন্টার প্রকারের হবে।
সংযুক্ত তালিকার প্রকারগুলি হ'ল এককভাবে সংযুক্ত তালিকা, দ্বিগুণভাবে লিঙ্কিত তালিকা, বিজ্ঞপ্তিযুক্ত লিঙ্ক তালিকা, বিজ্ঞপ্তি ডাবল লিঙ্কযুক্ত তালিকা।
সংযুক্ত তালিকায় সম্পাদিত অপারেশনগুলি হ'ল:
- সৃষ্টি
- ঢোঁড়ন
- সন্নিবেশ
- মুছিয়াতা
- অনুসন্ধানের
- শ্রেণীপরংপরা
- প্রদর্শন
উদাহরণ
নিম্নলিখিত স্নিপেট একটি লিঙ্কযুক্ত তালিকার নির্মাণের চিত্র তুলে ধরেছে:
কাঠামো নোড
{
ইন্ট নাম্বার;
স্টাক্ট নোড * পরবর্তী;
}
start = NULL;
অকার্যকর তৈরি ()
{
টাইপডেফ স্ট্রাক্ট নোড NODE;
নোড * পি, * কিউ;
চর পছন্দ;
প্রথম = NULL;
করা
{
p = (NODE *) malloc (মাপের (NODE));
f ("ডেটা আইটেম লিখুন n");
স্ক্যানফ ("% d", & p -> সংখ্যা);
যদি (পি == নাল)
{
q = start;
(q -> পরবর্তী! = নাল)
{q = q -> পরবর্তী
}
p -> পরের = q -> পরবর্তী;
q -> = পি;
}
আর
{
p -> পরের = শুরু;
শুরু = পি;
}
f ("আপনি কি চালিয়ে যেতে চান (টাইপ y বা n)? n");
স্ক্যানফ ("% সি", এবং পছন্দ);
}
যখন ((পছন্দ == y) || (পছন্দ == Y));
}
- একটি অ্যারে হ'ল ডেটা স্ট্রাকচারে অনুরূপ প্রকারের ডেটা উপাদানগুলির সংকলন থাকে তবে লিঙ্কযুক্ত তালিকাকে অ-আদিম ডেটা কাঠামো হিসাবে বিবেচনা করা হয় যা নোড হিসাবে পরিচিত আনর্ডারযুক্ত লিঙ্কযুক্ত উপাদানগুলির সংগ্রহ রয়েছে।
- অ্যারেতে উপাদানগুলি সূচকের অন্তর্ভুক্ত, যেমন, আপনি যদি চতুর্থ এলিমেন্টে প্রবেশ করতে চান তবে আপনাকে বর্ধিত বন্ধনীর মধ্যে তার সূচক বা অবস্থানের সাথে পরিবর্তনশীল নামটি লিখতে হবে।
যদিও একটি লিঙ্কযুক্ত তালিকায়, আপনাকে মাথা থেকে শুরু করতে হবে এবং আপনি চতুর্থ উপাদানটিতে না আসা পর্যন্ত আপনার পথে কাজ করতে হবে। - যখন কোনও এলিমেন্ট অ্যারে অ্যাক্সেস করা দ্রুত হয় তবে লিঙ্কযুক্ত তালিকায় লিনিয়ার সময় লাগে তাই এটি বেশ ধীর।
- অ্যারেতে সন্নিবেশ এবং মোছার মতো অপারেশনগুলি অনেক সময় নেয়। অন্যদিকে, লিঙ্কযুক্ত তালিকায় এই ক্রিয়াকলাপগুলির কার্যকারিতা দ্রুত।
- অ্যারেগুলি নির্দিষ্ট আকারের হয়। বিপরীতে, লিঙ্কযুক্ত তালিকাগুলি গতিশীল এবং নমনীয় এবং এর আকার প্রসারিত এবং চুক্তি করতে পারে।
- একটি অ্যারের মধ্যে, সংকলনের সময় স্মৃতি নির্ধারিত হয় যখন একটি লিঙ্কযুক্ত তালিকায় এটি কার্যকর করা বা রানটাইমের সময় বরাদ্দ করা হয়।
- উপাদানগুলি ধারাবাহিকভাবে অ্যারেগুলিতে সংরক্ষণ করা হয় তবে এটি লিঙ্কযুক্ত তালিকায় এলোমেলোভাবে সংরক্ষণ করা হয়।
- অ্যারে ইনডেক্সের মধ্যে প্রকৃত ডেটা সংরক্ষণ করার কারণে মেমরির প্রয়োজনীয়তা কম। বিপরীতে, অতিরিক্ত পরবর্তী এবং পূর্ববর্তী রেফারেন্সিং উপাদানগুলির সঞ্চয় করার কারণে লিঙ্কযুক্ত তালিকাগুলিতে আরও মেমরির প্রয়োজন রয়েছে।
- এছাড়াও অ্যারে মেমরির ব্যবহার অকার্যকর। বিপরীতে, মেমরির ব্যবহার অ্যারেতে দক্ষ।
উপসংহার
অ্যারে এবং লিঙ্কযুক্ত তালিকাগুলি বিভিন্ন ধরণের ডেটা স্ট্রাকচারের কাঠামো, অ্যাক্সেস এবং ম্যানিপুলেশন পদ্ধতি, মেমরির প্রয়োজনীয়তা এবং ব্যবহারের ক্ষেত্রে পৃথক। এবং এর বাস্তবায়নের ক্ষেত্রে বিশেষ সুবিধা এবং অসুবিধা রয়েছে। ফলস্বরূপ, প্রয়োজন অনুযায়ী একটি ব্যবহার করা যেতে পারে।