یکی از انواع ساختارهای داده که تجسم مستقیم نهادهای ریاضی در علوم کامپیوتر است ، مجموعه ها هستند. عملیات با آنها اغلب اساس الگوریتم های مختلف است. زبان های برنامه نویسی مختلف برای توصیف مجموعه ها ابزار خاص خود را دارند.
ضروری است
- - محیط توسعه؛
- - مترجم از زبان برنامه نویسی انتخاب شده
دستورالعمل ها
مرحله 1
در صورت وجود ، مجموعه را با استفاده از زبان برنامه نویسی توصیف کنید. به عنوان مثال ، در زبان Pascal یک ساختار مجموعه وجود دارد که به شما امکان می دهد انواع متناظر را اعلام کنید. درست است ، حجم چنین مجموعه هایی نباید بیش از 256 عنصر باشد. نمونه ای از اعلامیه های نوع مجموعه ممکن است به صورت زیر باشد:
نوع
AZLetters = مجموعه ای از 'A'.. 'Z'؛
AllLetters = مجموعه کاراکتر
متغیرها و ثابت انواع که به صورت مجموعه هستند به روش معمول اعلام می شوند. در این حالت می توان از حروف الفبا تنظیم شده برای مقداردهی اولیه استفاده کرد. مثلا:
ساختار
LettersSet1: AZLetters = ['A'، 'B'، 'C']؛
گام 2
از قابلیت های کتابخانه ها یا ماژول های استاندارد برای توصیف مجموعه ها استفاده کنید. بنابراین ، کتابخانه الگوی C ++ ، که باید بهمراه کامپایلر ارائه شود ، شامل الگویی برای کلاس کانتینر تنظیم شده است که عملکرد مجموعه ها را پیاده سازی می کند:
الگو <
کلاس کلیدی ،
صفات کلاس = کمتر ،
کلاس Allocator = تخصیص دهنده
مجموعه کلاس
همانطور که از لیست مشاهده می کنید ، استدلال های الگوی مجموعه عبارتند از: نوع داده عناصر مجموعه ، نوع شی functional عملکردی برای تعیین ترتیب عناصر در مجموعه و نوع تخصیص دهنده حافظه. در این حالت ، فقط اولین استدلال لازم است (همانطور که در دو مورد دیگر ، محمول باینری استاندارد کمتر و از تخصیص دهنده استاندارد به طور پیش فرض استفاده می شود).
مرحله 3
از کلاسها یا الگوهای کلاس استفاده شده در توسعه چارچوب هایی که عملکرد کار با مجموعه ها را در صورت وجود پیاده سازی می کنند ، استفاده کنید. نمونه ای از چنین ابزاری کلاس الگوی QSet از ماژول QtCore کتابخانه Qt است. قابلیت های آن مشابه ظرفیت مجموعه STL است که در مرحله قبل توضیح داده شد.
مرحله 4
مجموعه را با استفاده از ابزار پیاده سازی خود توصیف کنید. از پرچم های بیتی که در آرایه هایی با طول ثابت ذخیره شده اند ، برای مجموعه عناصر از انواع ساده و اندازه های کوچک استفاده کنید. یک کلاس کانتینر تنظیم شده برای انواع داده های پیچیده پیاده سازی کنید. به عنوان یک اساس ، شما می توانید عملکرد آرایه های انجمنی انجمنی یا هش دار را در نظر بگیرید. این ، به نوبه خود ، می تواند بر اساس درختان جستجوی دودویی خود متعادل ساخته شود (به عنوان مثال ، درختان سیاه و قرمز).