مجموعة مسننة
![نومار = [[1، 2، 3]، [4، 5، 6، 7]، [8، 9]]](https://file.arabipedia.wiki/wikipedia/commons/2/2f/Jagged_Array_Representation.png)
في علم الحاسوب ، تُعرف المصفوفة غير المنتظمة ، أو المصفوفة المتعرجة ، بأنها مصفوفة من المصفوفات ، حيث يمكن أن تكون عناصرها بأطوال مختلفة، مما ينتج عنه صفوف من الحواف المتعرجة عند تمثيلها كمخرجات. في المقابل، تكون المصفوفات ثنائية الأبعاد مستطيلة الشكل دائمًا، لذا يجب عدم الخلط بين المصفوفات غير المنتظمة والمصفوفات متعددة الأبعاد ، ولكن غالبًا ما تُستخدم الأولى لمحاكاة الثانية .
يمكن تنفيذ المصفوفة المتعرجة باستخدام بنية بيانات متجه Iliffe في لغات مثل Java و PHP و Python (قوائم متعددة الأبعاد) و Ruby و C#.NET و Visual Basic.NET و Perl و JavaScript و Objective-C و Swift و Atlas Autocode .
أمثلة
في لغة C# ولغة Java [ 5 ] يمكن إنشاء المصفوفات غير المنتظمة باستخدام الكود التالي: [ 6 ]
int [][] c ; c = new int [ 2 ][]; // إنشاء صفين c [ 0 ] = new int [ 5 ]; // 5 أعمدة للصف 0 c [ 1 ] = new int [ 3 ]; // إنشاء 3 أعمدة للصف 1في لغتي C و C++ ، يمكن إنشاء مصفوفة غير منتظمة (على المكدس) باستخدام الكود التالي:
int jagged_row0 [] = { 0 , 1 }; int jagged_row1 [] = { 1 , 2 , 3 }; int * jagged [] = { jagged_row0 , jagged_row1 };في لغة C/C++، يمكن أيضًا إنشاء المصفوفات غير المنتظمة (على الكومة) باستخدام مصفوفة من المؤشرات:
int * jagged [ 5 ];jagged [ 0 ] = malloc ( sizeof ( int ) * 10 ); jagged [ 1 ] = malloc ( sizeof ( int ) * 3 );في لغة C++/CLI ، يمكن إنشاء مصفوفة غير منتظمة باستخدام الكود التالي: [ 7 ]
using namespace System ; int main () { array < array <double> ^ > ^ Arrayname = gcnew array < array <double> ^ > ( 4 ); // المصفوفة تحتوي على 4 عناصر // return 0 ; }في لغة فورتران ، يمكن إنشاء مصفوفة غير منتظمة باستخدام أنواع مشتقة مع مكونات قابلة للتخصيص:
نوع :: Jagged_type عدد صحيح ، قابل للتخصيص :: صف (:) نهاية نوع Jagged_type نوع ( Jagged_type ) :: Jagged ( 3 ) Jagged ( 1 )% صف = [ 1 ] Jagged ( 2 )% صف = [ 1 , 2 ] Jagged ( 3 )% صف = [ 1 , 2 , 3 ]في لغة بايثون ، لا تُعتبر المصفوفات غير المنتظمة أصلية، ولكن يمكن استخدام تراكيب القوائم لإنشاء قائمة متعددة الأبعاد تدعم أي مصفوفة متعددة الأبعاد: [ 8 ]
multi_list_3d = [[[] for i in range ( 3 )] for i in range ( 3 )] # ينتج: [[[], [], []], [[], [], []], [[], []]]multi_list_5d = [[[] for i in range ( 5 )] for i in range ( 5 )] # ينتج: [[[], [], [], [], []], [[], [], [], []], [[], [], [], []], [[], [], [], []]], [[], [], [], []]]انظر أيضاً
مراجع
- ↑ كينغ، ك. ن. (2008). برمجة لغة سي . دبليو دبليو نورتون. ص 301. ISBN 978-0-393-97950-3.
- ↑ دليل هياكل البيانات وتطبيقاتها . مطبعة CRC. 2004.
- ↑ جيسي ليبرتي؛ برايان ماكدونالد (18 نوفمبر 2008). تعلم لغة C# 3.0 . دار نشر أورايلي ميديا، ص 210 وما بعدها. ISBN 978-0-596-55420-0.
- ↑ دون بوكس (2002). أساسيات .Net: بيئة التشغيل للغة المشتركة . أديسون-ويسلي بروفيشنال. ص 138. ISBN 978-0-201-73411-9.
- ↑ "المصفوفة غير المنتظمة في جافا - جيكس فور جيكس" . جيكس فور جيكس . 2016-02-03 . تم الاطلاع عليه بتاريخ 2018-08-13 .
- ↑ بول ج. دايتل؛ هارفي م. دايتل (26 سبتمبر 2008). لغة سي شارب 2008 للمبرمجين . بيرسون للتعليم. ص 40. ISBN 978-0-13-701188-9.
- ↑ "المصفوفات غير المنتظمة" . FunctionX . تم الاطلاع عليه بتاريخ 26 نوفمبر 2014 .
- ↑ "تبسيط القوائم في بايثون" . Alvin.io . مؤرشف من الأصل بتاريخ 15 أكتوبر 2016. تم الاطلاع عليه بتاريخ 31 يناير 2016 .
- المصفوفات
