אחד מסוגי מבני הנתונים המהווים התגלמות ישירה של ישויות מתמטיות במדעי המחשב הם קבוצות. פעולות איתם לעיתים קרובות עומדות בבסיס האלגוריתמים השונים. לשפות תכנות שונות יש אמצעים משלהן לתיאור סטים.
נחוץ
- - סביבת פיתוח;
- - מתרגם משפת התכנות שנבחרה.
הוראות
שלב 1
תאר את הסט באמצעות שפת התכנות, אם קיימת. לדוגמא, בשפת פסקל יש מבנה קבוצה המאפשר להכריז על הסוגים המתאימים. נכון, הנפח של קבוצות כאלה לא יעלה על 256 אלמנטים. דוגמה להצהרות מסוג סט עשויה להיראות כך:
סוּג
AZLetters = סט 'A'.. 'Z';
AllLetters = סט של char;
משתנים וקבועים מסוגים שהם סטים מוכרזים בדרך הרגילה. במקרה זה, ניתן להשתמש באותיות מילוליות לצורך אתחול. לדוגמה:
קונסט
LettersSet1: AZLetters = ['A', 'B', 'C'];
שלב 2
השתמש ביכולות של ספריות או מודולים סטנדרטיים לתיאור קבוצות. לכן, ספריית התבניות C ++, שאמורה להיות מסופקת עם המהדר, כוללת תבנית למחלקת מיכל הקבוצות המיישמת את הפונקציונליות של קבוצות:
תבנית <
מפתח בכיתה, תכונות כיתה = פחות, מחלקה מחלקה = מקצה
סט כיתות
כפי שניתן לראות מהרישום, הטיעונים של תבנית הסט הם: סוג הנתונים של רכיבי הסט, סוג האובייקט הפונקציונלי לקביעת סדר האלמנטים בערכה וסוג מקצה הזיכרון.. במקרה זה, נדרש רק הטיעון הראשון (כשני האחרים, הקדם-בינארי הסטנדרטי פחות וההקצאה הסטנדרטית משמשים כברירת מחדל).
שלב 3
החל שיעורים או תבניות כיתות המשמשות בפיתוח מסגרות המיישמות את הפונקציונליות של עבודה עם סטים, אם בכלל. דוגמא לכלי כזה הוא מחלקת התבניות QSet של מודול QtCore בספריית Qt. יכולותיו דומות לאלו של מיכל הסט STL שתואר בשלב הקודם.
שלב 4
תאר את הסט באמצעות אמצעי היישום שלך. השתמש בדגלי ביט, המאוחסנים במערכים באורך קבוע, עבור קבוצות של אלמנטים מסוגים פשוטים ובגדלים קטנים. יישם מחלקת מיכל מוגדרת עבור סוגי נתונים מורכבים. כבסיס, אתה יכול לקחת את הפונקציונליות של מערכים אסוציאטיביים אסוציאטיביים או hashing. בתורו, ניתן לבנות אותו על בסיס עצי חיפוש בינאריים בעלי איזון עצמי (למשל עצים אדומים-שחורים).