اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

لیست پیوندی در مقایسه با آرایه

+2 امتیاز
6,143 نمایش

چرا ترجیح داده میشه از لیست پیوندی استفاده بشه تا از آرایه در حالیکه کار با اون سخت تره!
استفاده از لیست پیوندی چه مزایایی نسبت به آرایه ها داره؟

در ++C زبانی بسیار کوچک‌تر و پاکیزه‌تر در تلاش برای خروج است. (Bjarne Stroustrup)
پرسیده شده دوشنبه ۱۳ آذر ۱۳۹۱ در C++ توسط برنامه‌نویس  
بازتگ شده جمعه ۲۳ فروردین ۱۳۹۲ توسط admin

6 پاسخ

+2 امتیاز

خب اولین برتری که لیست پیوندی نسبت به آرایه داره اینه که شما در لیست پیوندی میتونین انواع داده‌های مختلفی داشته باشین، در حالیکه آرایه فقط خانه‌هایی از یک نوع داده رو در اختیار شما میذاره.

پاسخ داده شده پنجشنبه ۲۱ دی ۱۳۹۱ توسط CPP_Crawler4  

در لیست پیوندی هم اعضای پشت سر هم از یک نوع هستن دیگه. غیر اینه؟

بله منظورم داشتن انواع مختلف داده در یک خونه از لیست بود. و دیگه وقتی تعریف خونه‌ی لیستتون رو ببندین، تمام خونه‌هایی که در لیست دارین از همون نوع و با همون شرایط خواهند بود.

خب آرایه هم که همین خاصیت رو داره. می‌تونیم یه آرایه از یک کلاس بسازیم که انواع داده رو داره.

نمیدونستم میشه آرایه‌ای از نوع کلاس تعریف کرد!
خب پس این مزیت لیست پیوندی نسبت به آرایه نیست؟

+2 امتیاز

یه مزیت لیست پیوندی اینه که شما هر اندازه و سایزی از اون لیست رو میتونین داشته باشین، اونم هرجای برنامه که بودید! در حالیکه آرایه باید همون موقع تعریف اندازه‌ش رو مشخص کنید و اگر نیازی به افزایش تعداد خونه‌ها داشت، باید دوباره آرایه ای از اون نوع رو بسازین!
به نظرم این هم خیلی مهمه!

پاسخ داده شده پنجشنبه ۲۱ دی ۱۳۹۱ توسط CPP_Crawler5  

در سوال گفته شده آرایه نه آرایه‌ی استاتیک بنابراین می‌تونیم آرایه‌ی پویا رو هم در نظر بگیریم که خب به این ترتیب اندازه‌ش هم می‌تونه ثابت نباشه.

+1 امتیاز

۱- همیشه استفاده از لیست پیوندی بهتر نیست. اصولاً جستجو، پیمایش و دسترسی به اعضای یک لیست پیوندی کندتر از آرایه است.

۲- استفاده از آرایه مزایای زیر و داره:
الف) اشغال حافظه‌ی کمتر ب) اجرای سریع‌تر عملیات مثل جستجو و ... ج) استفاده‌ی آسان و قابل فهم‌تر (که در لیست پیوندی قابل پیاده‌سازی هست البته)

۳- استفاده از لیست پیوندی مزایای زیر و داره:
الف) دستکاری اعضا به صورت‌های مختلف مانند درج و حذف اعضا و ... ب) امکان استفاده از فضاهای خالی ram بیشتر از آرایه است. ج) امکان پیاده‌سازی توابع مختلف به صورت توابع عضو د) امکان گسترش کاربردهای مختلف به صورت شی‌گرایی از کلاس اصلی لیست پیوندی

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده جمعه ۲۷ اردیبهشت ۱۳۹۲ توسط prodo  
+1 امتیاز

دوست عزیز
اولا آرایه‌های ایستا با توجه به ویژگی‌هایی که دارند، نمی‌توانند در همه مواقع نیاز ما را برآورده کنند. به همین خاطر آرایه‌های پویا را به خدمت می‌گیریم. اما آرایه‌های پویا هم معایبی دارند. بزرگترین مشکل آرایه‌ها - چه ایستا و چه پویا - این است که اندازه ثابتی دارند و امکان تغییر اندازه پس از تعریف آنها وجود ندارد. این ویژگی گاهی چندان مهم نیست. مثلا فرض کنید قصد داریم یک ماتریس با ابعاد نامشخص را در یک آرایه دو بعدی به گونه‌ای قرار دهیم که با مشکل کمبود فضا و یا فضای اضافی مواجه نشویم. آرایه ایستا در این مورد کمکی به ما نمی‌کند. اما آرایه پویا به خوبی این مشکل را برطرف می‌کند.
حال برنامه‌ای را در نظر بگیرید که نام و شماره تلفن دوستان شما را ذخیره می‌کند. تعداد دوستان شما چقدر است؟ آیا همواره می‌توان این عدد - و یا حتی سقف آن - را مشخص کرد؟ شما هر لحظه ممکن است اسمی را به این لیست اضافه و یا از آن حذف کنید. در این حالت آرایه پویا هم کمک چندانی به ما نمی‌کند، و باید به سراغ ساختار دیگری برویم: لیست پیوندی.

دوم اینکه فلسفه ی لیجاد لیست پیوندی اتصال خانه هایی از حافظه هستند که بلا استفاده و پرت هستند و ما با پیوند دادن این حافظه ها به یکدیگر در واقع راندمان کار را بالا برده و استفاده ی بهتری از حافظه کرده ایم که در برنامه هایی با حجم بالا که بخش زیادی از حافظه را اشغال می کنند به درد می خورند

پاسخ داده شده دوشنبه ۲۹ مهر ۱۳۹۲ توسط نیما   1 2
0 امتیاز

یکی دیگه از مزیت‌های مهم لیست پیوندی اینه که محدودیتی برای سایز اون وجود نداره، در حالیکه سایز آرایه باید موقع تعریف اون مشخص بشه.

پاسخ داده شده چهارشنبه ۲۳ اسفند ۱۳۹۱ توسط CPP_Crawler4  

مثل پاسخ سایه این پاسخ هم جوابش اینه که اندازه‌ی آرایه در حالت پویا قابل تغییره بنابراین این هم برتری لیست پیوندی نمی‌تونه باشه

پس اون مزیت که میگن چیه؟ :-؟

0 امتیاز

خب دیگه این مزیتشو مطمئنم که تنها در لیست پیوندی میشه هر جایی (وسط، ابتدا) لیست، عنصری رو (به راحتی) اضافه کنید، در حالیکه در آرایه برای این کار یه روند طولانی تری باید طی شه تا همه‌ی عناصر جابه‌جا بشن و جایی برای عنصر جدید باز بشه.
نمیخواین که بگین این هم مزیتش نیست؟! :|

پاسخ داده شده پنجشنبه ۲۴ اسفند ۱۳۹۱ توسط CPP_Crawler4  

نه درسته. دستکاری اعضا بدون تغییر اعضای دیگه مزیتی هست که لیست پیوندی نسبت به آرایه‌ی پویا داره. مثلاً همین درج یک عضو در آرایه‌ی پویا نیاز داره که آدرس چندتا عضو دیگه عوض بشه. و به طور کلی دوباره حافظه‌گیری بشه. اما در لیست پیوندی نیازی به این نیست.