ساختارهای داده خطی در فرانت‌اند

ساختارهای داده خطی، عناصر را در یک توالی قرار می‌دهند. هر عنصر دارای یک عنصر قبل و یک عنصر بعد است.

آرایه‌ها (Arrays)

آرایه‌ها ابزار اصلی در JavaScript هستند. آن‌ها از حافظه پیوسته (contiguous memory) استفاده می‌کنند. این ویژگی به شما اجازه می‌دهد تا با استفاده از ایندکس، بلافاصله به هر عنصری دسترسی داشته باشید.

نکته: وقتی یک آرایه بیش از حد بزرگ می‌شود، JavaScript باید بلوک حافظه بزرگتری اختصاص دهد و همه چیز را به آنجا کپی کند. این کار باعث کاهش عملکرد (performance) می‌شود.

پشته‌ها (Stacks)

یک پشته از قانون LIFO پیروی می‌کند: آخرین ورودی، اولین خروجی (Last In, First Out). یک دسته بشقاب را تصور کنید؛ شما فقط از بالا چیزی اضافه یا حذف می‌کنید.

صف‌ها (Queues)

یک صف از قانون FIFO پیروی می‌کند: اولین ورودی، اولین خروجی (First In, First Out). یک صف در فروشگاه را تصور کنید.

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

لیست‌های پیوندی (Linked Lists)

یک لیست پیوندی از گره‌ها (nodes) تشکیل شده است. هر گره شامل داده و یک اشاره‌گر (pointer) به گره بعدی است.

خلاصه مقایسه:

نکات حرفه‌ای برای JavaScript:

Source: https://dev.to/markyu/frontend-linear-data-structures-deep-dive-arrays-stacks-queues-and-linked-lists-mp2