Google Play badge

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


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

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

مقدمه

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

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

آرایه چیست؟

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

هر جعبه در یک آرایه دارای عددی به نام شاخص است. اولین کادر معمولاً 0 شماره گذاری می شود، کادر بعدی 1 و سپس 2 و غیره است. این شماره گذاری به شما کمک می کند تا به سرعت یک مورد خاص را پیدا کنید. به عنوان مثال، اگر می‌خواهید آیتم را در کادر سوم قرار دهید، به سادگی به کادر با نمایه 2 نگاه کنید.

در اینجا یک فرمول ساده برای توضیح چگونگی یافتن یک آیتم در یک آرایه وجود دارد. اگر کادر اول در نقطه شروع باشد، آدرس هر مورد را می توان به صورت زیر در نظر گرفت:

\( \textrm{آدرس}(A(i)) = \textrm{آدرس}(A(0)) + i \times \textrm{(اندازه یک مورد)} \)

این به ما می گوید که برای حرکت از اولین کادر به کادر مورد نظر خود، تعداد مشخصی فاصله را به جلو شمارش می کنیم.

خواص آرایه ها

به آرایه‌ای مانند صندلی‌های یک سینمای کوچک فکر کنید. هر صندلی یک شماره دارد و اگر شماره آن را بدانید می توانید به سرعت به صندلی خود بروید.

مثال روزمره یک آرایه

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

لیست پیوندی چیست؟

لیست پیوندی روش دیگری برای ذخیره اقلام است. این با آرایه متفاوت است زیرا از یک ردیف طولانی از جعبه های ثابت استفاده نمی کند. در عوض، از جعبه های خاصی به نام گره ها استفاده می کند. هر گره یک آیتم را نگه می دارد و همچنین یک اشاره گر دارد که به شما می گوید گره بعدی کجاست.

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

شما می توانید هر گره را به عنوان یک پاکت کوچک در نظر بگیرید. پاکت حاوی یک کارت (داده ها) و همچنین یک یادداشت (اشاره گر) است. این یادداشت به شما می گوید که کدام پاکت در ردیف بعدی قرار می گیرد.

لیست پیوندی چگونه کار می کند

بیایید به یک روش ساده برای نوشتن گره نگاه کنیم:

گره = {داده، اشاره گر)

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

انواع لیست های پیوندی

سبک های مختلفی از لیست های پیوندی وجود دارد. در اینجا سه ​​نوع رایج وجود دارد:

نمونه دنیای واقعی یک لیست پیوندی

تصور کنید نقشه گنج را دنبال می کنید. هر مرحله روی نقشه به شما می گوید که مرحله بعدی کجاست. حتی اگر یک سرنخ اضافی اضافه کنید یا یکی را حذف کنید، همچنان می‌توانید با خواندن سرنخ روی هر کارت دنبال کنید. لیست پیوندی به این ترتیب کار می کند. هر گره (یا سرنخ) به گره بعدی متصل می شود و به شما امکان می دهد هر بار در لیست حرکت کنید.

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

آرایه ها و لیست های پیوندی هر دو به ما کمک می کنند تا موارد را ذخیره کنیم، اما آنها این کار را به روش های مختلف انجام می دهند. در اینجا چند مقایسه وجود دارد:

مزایا و معایب

هر ساختار داده بخش های خوب و چالش های خود را دارد. درک این موارد به شما کمک می کند تا بهترین مورد را برای استفاده انتخاب کنید.

آرایه ها:

مزایا:

معایب:

لیست های مرتبط:

مزایا:

معایب:

کار با آرایه ها

بیایید ببینیم چگونه می توانیم از یک آرایه به روشی ساده استفاده کنیم. فرض کنید می خواهید پنج رنگ مورد علاقه خود را ذخیره کنید. شما یک آرایه با پنج جعبه ایجاد می کنید. سپس هر رنگ را به ترتیب در یک جعبه قرار می دهید. به عنوان مثال:

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

کار با لیست های پیوندی

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

به عنوان مثال، تصور کنید سه گره در یک لیست پیوندی دارید که داستان سرگرم کننده ای را بیان می کند:

شما از گره 1 شروع می کنید و اشاره گر (سرنخ) را به گره 2 و سپس به گره 3 دنبال می کنید. حتی اگر می خواهید یک سرنخ جدید بین هر یک از اینها اضافه کنید، فقط باید چند اشاره گر را تغییر دهید. این باعث می شود لیست های پیوندی بسیار انعطاف پذیر باشند.

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

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

برنامه های کاربردی روزمره

آرایه ها در بسیاری از چیزهای روزمره استفاده می شوند. به عنوان مثال، یک تقویم را تصور کنید. یک تقویم تعداد روزهای ثابتی در هر هفته دارد و آن روزها در یک ردیف مرتب می شوند. وقتی به تقویم نگاه می کنید، دقیقاً می دانید کدام روز در کدام نقطه است.

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

سفارشی سازی ذخیره سازی داده ها

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

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

نحوه تصمیم گیری برای استفاده

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

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

نکات کلیدی و خلاصه

اجازه دهید نکات اصلی درس خود را مرور کنیم:

آرایه ها:

لیست های مرتبط:

تفاوت ها و موارد استفاده:

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

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

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

این درس به شما ایده روشنی از چیستی آرایه ها و لیست های پیوندی داده است. همانطور که به یادگیری و کشف علوم کامپیوتر ادامه می دهید، این ایده های اساسی به شما در درک موضوعات پیچیده تر کمک می کند. آنها بلوک های سازنده ساختارهای داده و الگوریتم های پیشرفته تر هستند.

خلاصه نکات کلیدی:

از شما برای خواندن این درس در مورد آرایه ها و لیست های پیوندی متشکریم. امیدواریم از یادگیری این روش ها برای ذخیره سازی داده ها به روشی واضح و ساده لذت برده باشید. همانطور که رشد می کنید و بیشتر می آموزید، این ساختارهای اساسی و چگونگی کمک به کارآمدی رایانه ها را به خاطر بسپارید.

Download Primer to continue