🔍 مصاحبه DSA پرسش و پاسخ – روز 1: آرایه ها در مقابل لیست های مرتبط

خوش آمدید روز 1 از سری پرسش و پاسخ DSA مصاحبه، جایی که ما در اعماق سوالات داده های داده و الگوریتم های متداول شیرجه می شویم تا به شما در تهیه هوشمندانه تر برای مصاحبه های فنی کمک کند.
✅ سوال
تفاوت بین یک آرایه و یک لیست مرتبط چیست؟
💡 پاسخ
آرایه ها و لیست های مرتبط هر دو هستند ساختار داده های خطی، اما آنها در نحوه برخورد با حافظه ، عملیات و عملکرد متفاوت هستند.
🔸 آرایه
نشان | شرح |
---|---|
خاطره | محاصره کننده حافظه |
اندازه | اندازه ثابت (تعریف شده در ایجاد) |
زمان دسترسی | o (1) – دسترسی مستقیم از طریق فهرست |
درج | o (n) – عناصر باید تغییر کنند |
حذف | o (n) – عناصر باید تغییر کنند |
از مورد استفاده کنید: بهترین حالت در هنگام نیاز به دسترسی سریع ، مستقیم و اندازه داده ها به طور مکرر تغییر نمی کند.
مثال (C#):
int[] arr = { 10, 20, 30, 40, 50 };
Console.WriteLine(arr[2]); // Output: 30
🔸 لیست پیوندی
نشان | شرح |
---|---|
خاطره | گره ها در حافظه پراکنده هستند. هر گره به قسمت بعدی اشاره می کند |
اندازه | پویا – در صورت لزوم رشد می کند/کوچک می شود |
زمان دسترسی | o (n) – باید از سر عبور کند |
درج | o (1) – اگر نشانگر گره شناخته شده باشد |
حذف | o (1) – اگر نشانگر گره شناخته شده باشد |
از مورد استفاده کنید: ایده آل هنگام درج مکرر و حذف ها مورد نیاز است و دسترسی تصادفی لازم نیست.
مثال (C#):
public class Node
{
public int Data;
public Node Next;
}
Node head = new Node { Data = 10, Next = null };
head.Next = new Node { Data = 20, Next = null };
Console.WriteLine(head.Next.Data); // Output: 20
🧠 مقایسه کلیدی
نشان | مجموعه | لیست پیوندی |
---|---|---|
طرح حافظه | هم پیوسته | غیر مبهم |
انعطاف پذیری اندازه | ثابت | پویا |
دسترسی | o (1) | o (n) |
درج | o (n) | o (1)* |
حذف | o (n) | o (1)* |
*اگر اشاره گر/مرجع به گره از قبل شناخته شده باشد.
🎯 نکته مصاحبه
- ترجیح دادن آرایه هنگامی که به نمایه سازی سریع و حداقل عملیات درج/حذف نیاز دارید.
- استفاده کردن لیست های مرتبط هنگامی که برنامه شما به اصلاحات مکرر (درج/حذف) در وسط ساختار نیاز دارد.
👉 بعدی: نحوه تشخیص چرخه در یک لیست مرتبط (الگوریتم فلوید)
🔔 برای محتوای آماده سازی مصاحبه روزانه و نمونه های دنیای واقعی دنبال کنید!
💬 در زیر تجربه یا نکات خود را با استفاده از آرایه ها و لیست های مرتبط در پروژه ها نظر دهید.