آرایه Array
آرایه یا Array چیست؟
آرایه (Array) ساختمان داده ای است متشکل از چندین عنصر (اِلِمان) که برای دسترسی به آنها معمولا از یک اندیس استفاده میشود. موقعیت هر عنصر در حافظه از روی این اندیس محاسبه میشود.
سادهترین نوع آرایه، آرایهی خطی (Linear) یا تک بُعدی است. به عنوان مثال آرایهای از نوع اعداد صحیح (Integer) با تعداد 5 عنصر را در زبان C++ در نظر بگیرید. این عناصر به اندیسهای 0 تا 4 این آرایه منتسب میشوند. در صورتی که آدرس شروع آرایه در مموری برابر 1000 باشد با درنظر گرفتن اینکه هر مقدار Integer، چهار بایت حافظه نیاز دارد بنابراین پنج عنصر فوق آدرسهای 1000 تا 1019 حافظه رم را اشغال خواهند کرد.
نوع متداول دیگری از آرایهها که دو بعدی هستند با عنوان ماتریس نیز شناخته میشوند. معمولا برای دسترسی به هر عنصر در این آرایهها از دو اندیس استفاده میشود، یکی برای سطر و دیگری برای ستون. به عنوان مثال اگر A یک آرایهی دوبعدی با 3 سطر و 3 ستون باشد و اندیس شروع برابر 0 باشد A[1][2] به عنصر موجود در سطر دوم و ستون سوم اشاره میکند.
با وجود اینکه کاربرد آرایههای با ابعاد بالاتر به اندازهی آرایههای خطی و دو بعدی نیست اما محدودیتی در ابعاد آرایهها وجود ندارد. در عین حال تمامی عناصر یک Array باید از یک نوع باشند. معادل ریاضی آرایه، چندتایی (Tuple) میباشد.
آرایه ها ممکن است پویا (داینامیک یا Dynamic) باشند به این معنا که اندازه (یا ظرفیت) آنها میتواند پس از ایجاد، افزایش یا کاهش داده شود درست برخلاف نوع استاتیک (Static) که در هنگام ایجاد شدن، ظرفیتشان به صورت ثابت مشخص میشود و غیرقابل تغییر است.
آرایه در زبانهای برنامه نویسی کاربرد بسیار زیادی دارد و از مهمترین انواع ساختمان دادهها به شمار میرود. حتی بسیاری از ساختمان دادههای دیگر نظیر صف، پشته، رشته و … نیز با کمک آرایه پیادهسازی میشوند.
در اغلب زبانهای برنامه نویسی، اندیس پیش فرض اولین عنصر آرایه برابر با 0 (نظیر خانواده زبان های C و بیسیک) یا 1 (نظیر MATLAB و Fortran) میباشد و کران بالای اندیسها براساس نیاز تعیین میشود.
در قطعه کد زیر نحوهی تعریف و مقداردهی اولیهی آرایهای به نام Length با پنج عنصر در زبان C++ نمایش داده شده است.
int Length[5] = {16, 20, 27, 40, 45};
به منظور تجسم این Array میتوان تصویر زیر را در نظر گرفت. اعداد بالای خانههای این تصویر نمایانگر اندیس عنصر متناظر هستند.
پیوندهای پیشنهادی تک دیک