Menu
Coddy logo textTech
מסלול למידה

מבני נתונים ואלגוריתמים ב־Swift

הספרייה הסטנדרטית של Swift נותנת לכם Array, Dictionary ו־Set, ועוצרת שם: אין תור, ערימה, רשימה מקושרת או עץ. במסלול הזה אתם בונים כל אחד מהם ב־Swift, עם מחלקות לצמתים ו־weak לקישורים שמצביעים אחורה, ואז ממיינים, משתמשים ברקורסיה ומחפשים בגרפים בעזרתם, ומסיימים בשאלות ראיונות שנבדקות. בחינם, בדפדפן, עם תעודה ברוב הקורסים.

377 שיעורים228 אתגרים702 שאלות חידון

DSA ב־Swift, שלב אחר שלב

38 קורסים377 שיעורים228 אתגרים702 שאלות חידון

כל שלב הוא אוסף של קורסים קיימים ב־Coddy, וכל כפתור התחלה פותח אותם ב־Swift. שלושת הקורסים שעדיין לא נלמדים ב־Swift מופיעים אחרי השלבים.

  1. 1
    להתחיל את השלב הזהלהתחילמחסנית, תור, עץ בינארי, טבלת גיבוב ורשימה מקושרת, כל אחד נבנה מאפס ב־Swift ואז משמש לפתרון בעיות. בסופו, אתם יודעים למה Array הוא מחסנית טובה ותור איטי, ומה Dictionary עושה בשבילכם.להתחיל
  2. 2
    להתחיל את השלב הזהלהתחילרשימה מקושרת דו־כיוונית, ערימות ותורי עדיפויות, עצי trie, גרפים ועץ AVL המאזן את עצמו: מבנים שהספרייה הסטנדרטית לא מספקת. ברשימה המקושרת הדו־כיוונית weak מצדיק את מקומו, והערימה שאתם כותבים כאן היא זו ששלב הגרפים צריך.להתחיל
  3. 3
    להתחיל את השלב הזהלהתחילמיון בועות, בחירה, הכנסה, מיזוג, מהיר, ערימה, מנייה ובסיס, נכתבים ב־Swift ונצפים בוויזואלייזר. sorted(by:) מקבלת closure כמו { $0 > $1 }; אחרי השלב הזה, תוכלו לכתוב את האלגוריתם שבצד השני של הקריאה הזו.להתחיל
  4. 4
    להתחיל את השלב הזהלהתחילאתגרי רקורסיה ב־Swift. רקורסיה משתלבת באופן טבעי עם indirect enum, טיפוס שמותר לו להכיל את עצמו, ו־Swift לא מבטיחה אופטימיזציה לקריאות זנב, כך שרקורסיה עמוקה מספיק קורסת עם גלישת מחסנית במקום לרוץ לנצח. תכנות דינמי ומניפולציית ביטים מופיעים אחרי השלבים, כי הם נלמדים ב־Python וב־C++.להתחילדף ייעודי
  5. 5
  6. 6
    להתחיל את השלב הזהלהתחילעשר חבילות אתגרי ראיונות ושני מאגרי בעיות תכנות ב־Swift, שנבדקים במקרי בדיקה: בעיות לא מוכרות, שנפתרות בלי מדריך, עם טיפוסי ערך והפניות שאתם בוחרים עכשיו בכוונה. שימו לב לכלל אחד של Swift בדרך: גלישה אריתמטית עוצרת את התוכנית בזמן ריצה, ולכן קוד שמסתמך על גלישה מעגלית משתמש ב־&+, &- ו־&*.להתחיל
מה מקבלים
כל מה שתשתמשו בו כדי ללמוד לתכנת

ללמוד תוך כדי עשייה

כתבו קוד אמיתי, שלפו נתונים ממסדי נתונים, בנו אתרים ושלטו בפרומפטים ל-AI. השיעורים האינטראקטיביים שלנו מכסים כל מיומנות שמפתחים מודרניים צריכים.

playground.js
עורך קוד
1const greeting = "Hello, Coddy!"
2function sayHi(name) {
3    return greeting + " " + name
4}
5
bottombar Collapse icon
בדיקה #1test Case Success icon
בדיקה #2test Case Success icon
בדיקה #3test Case Failure icon
קלט
"Alex"
פלט
"Hello, Coddy! Alex"

לבנות רצף

שמרו על עקביות וראו איך ההתקדמות שלכם גדלה! עקבו אחרי הרגל התכנות היומי, הגנו על הרצף עם ימי הקפאה וקבלו פרסים על כל יום שאתם מגיעים.

12 ימי רצף

חזרו מחר כדי לשמור על הרצף!

fire Filled icon
left icon

January 2026

right icon

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

21

22

23

24

25

26

27

28

29

30

product Double Or Nothing icon

הכל או כלום

יום 5 מתוך 7

fire Freeze icon

הקפאת רצף

2 left

לתכנת מכל מקום

קחו את מסע התכנות שלכם לכל מקום! בלי התקנות, בלי הורדות - פשוט פותחים ומתחילים לתכנת. זמין ב-iOS, ב-Android ובאתר עם דירוג של 4.9 כוכבים.

Python
7רצף
250ניקוד
5אנרגיה
משתנים
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Right Done icon
journey Hex Done Base iconjourney Hex Done Shadow iconjourney Hex Done Top iconjourney Lesson Done icon
journey Path Left Done icon
journey Hex Active Base iconjourney Hex Active Shadow iconjourney Hex Active Top iconjourney Lesson Theory Challenge icon
להמשיך
journey Path Right icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson Theory Challenge icon
journey Path Left icon
journey Hex Locked Base iconjourney Hex Locked Shadow iconjourney Hex Locked Top iconjourney Lesson All icon
מסלול
יעדים
טבלת הדירוג
פרופיל
4.9
כוכבכוכבכוכבכוכבכוכב
דירוג

אתם לא לבד

התחרו בטבלאות דירוג עולמיות, הזמינו חברים כדי לקבל פרסים וחגגו את ההצלחות אחד של השני. תכנות עם חברים זה יותר כיף!

ליגת המתמודדים
ליגת המתמודדים7 המובילים עולים
leaderboard First icon1
avatar 1 icon
fire Filled icon
Alex7+ Days
2840
leaderboard Second icon2
avatar 2 icon
fire Filled icon
Jordan7+ Days
2650
leaderboard Third icon3
avatar 3 icon
fire Filled icon
Sam7+ Days
2420
4
avatar 4 icon
Casey
2180
5
avatar placeholder icon
fire Filled icon
Morgan7+ Days
1950
leaderboard Arrow Up iconאזור העלייהleaderboard Arrow Up icon

כל הדרכים ללמוד

לקרוא, להאזין, לבחון את עצמכם, לשאול את ה-AI או לחפש כל דבר שכבר למדתם. כל שיעור פוגש אתכם בדיוק איפה שאתם.

מבוא למשתנים
אודיו

משתנה הוא מיכל עם שם ששומר ערך שאפשר להתייחס אליו בהמשך התוכנית.

ב-Python יוצרים משתנה על ידי כתיבת השם, סימן שווה, ואז הערך שרוצים לשמור.

הערך יכול להשתנות עם הזמן - השמה מחדש לאותו שם פשוט מפנה אותו לערך חדש.

1xשרה

לקבל תעודה

קבלו תעודה על כל קורס שתסיימו. הוסיפו אותן לפרופיל ה-LinkedIn ולקורות החיים כדי להציג למעסיקים את כישורי התכנות שלכם.

Coddyתעודת סיום
תעודה זו מאשרת כיישראל ישראליהשלים/ה בהצלחה את
python iconיסודות Python
מאומת
תאריךינו׳ 2026
LinkedInלהוסיף ל-LinkedIn

למה ללמוד DSA ב־Swift ב־Coddy

  • המבנים ש־Swift השאירה בחוץ. בספרייה הסטנדרטית אין תור, deque, ערימה, רשימה מקושרת או עץ, ולכן שאלת ראיון ב־Swift שצריכה אחד מהם מצפה שתכתבו אותו. במסלול הזה אתם כותבים, ואז משתמשים בהם בקורסי הגרפים והראיונות, והחבילה swift-collections של Apple, בקוד פתוח, עם ה־Deque וה־Heap שלה, נקראת אחרת אחרי שעשיתם את זה.
  • טיפוסי ערך והפניות, באופן מוחשי. Array, Dictionary ו־Set הם טיפוסי ערך עם copy-on-write, כך שהעברה שלהם זולה עד שמישהו משנה אותם. צומת של עץ לא יכול לעבוד כך: הוא חייב להיות מחלקה, או indirect enum, ומצביע להורה חייב להיות weak, אחרת ARC לעולם לא ישחרר את המעגל. מבני נתונים הם המקום שבו מודל הזיכרון של Swift מפסיק להיות תיאוריה.
  • כמעט כל המסלול ב־Swift. כל מבנה נתונים, מיון, אלגוריתם גרפים, אתגר רקורסיה וחבילת ראיונות נלמדים ב־Swift. שלושה נלמדים במקום אחר ומופיעים אחרי השלבים עם קישור לכל אחד: תכנות דינמי וסדרת הראיונות של Python ב־Python, ומניפולציית ביטים ב־C++. מניפולציית ביטים קלה לקריאה מתוך Swift, שחולקת עם C++ את &, |, ^, ~, << ו־>>.
  • נבדק כמו בראיון. כל שיעור מסתיים באתגר Swift שנבדק במקרי בדיקה, וכשאחד נכשל, Bugsy קורא את הקוד שלכם ומכוון אתכם לתיקון בלי לתת את התשובה. תעודה חינמית ברוב הקורסים, וכל אחת ניתנת לאימות בכתובת משלה.

שאלות נפוצות על DSA ב־Swift

האם Swift טובה למבני נתונים ואלגוריתמים?

כן. גנריות, פרוטוקולים כמו Comparable ו־Hashable, ו־optionals הופכים צומת שה־next שלו עשוי להיות nil למפורש בטיפוס שלו, והקומפיילר בודק כל שימוש. כדאי לדעת שני דברים מוקדם: הספרייה הסטנדרטית דלה, כך שאתם כותבים את התור והערימה שלכם; ואוספים הם ערכים, כך שהשמה של מערך למשתנה חדש ושינוי שלו משאירים את המקור כמו שהוא, מה שמפתיע אנשים שמגיעים מ־Java או מ־JavaScript.

איזה טיפוס של Swift מתאים לאיזה מבנה נתונים?

Array הוא מערך דינמי ומחסנית, עם append ו־popLast(); Dictionary ו־Set הם טבלאות גיבוב. זו כל הספרייה הסטנדרטית. החבילה swift-collections של Apple, בקוד פתוח, מוסיפה Deque, Heap, OrderedSet ו־OrderedDictionary; את הרשימה המקושרת, העץ, ה־trie והגרף אתם כותבים בעצמכם, בשלבים אחד ושתיים.

למה צומת של עץ ב־Swift חייב להיות מחלקה?

כי struct הוא ערך. הוא לא יכול להחזיק מאפיין שמור מהטיפוס של עצמו, אפילו לא optional, ובכל מקום שבו הוא מחזיק עותקים, כמו במערך, שינוי של עותק משאיר את המקור כמו שהוא. מופע של מחלקה הוא הפניה, כך שצמתים יכולים להצביע זה על זה; גם indirect enum עובד, לעצים שלעולם לא משנים במקום. המלכודת היא ARC: מצביע להורה חייב להיות weak, אחרת ההורה והילד משאירים זה את זה בחיים והעץ לעולם לא משתחרר.

איך כותבים תור מהיר ב־Swift?

לא עם removeFirst(): על Array היא מזיזה כל איבר שנשאר, כך שכל הוצאה מהתור היא O(n). החזיקו אינדקס ראש וקדמו אותו, או השתמשו בשני מערכים: דחפו לתיבת כניסה, שלפו מתיבת יציאה, ומלאו מחדש את תיבת היציאה בהיפוך תיבת הכניסה כשהיא מתרוקנת. בשתי הדרכים הוצאה מהתור היא O(1) בממוצע לאורך זמן. ה־Deque של swift-collections עושה זאת בשבילכם, ובשלב הראשון אתם בונים תור בעצמכם.

אילו קורסים במסלול הזה לא נלמדים ב־Swift?

שלושה: תכנות דינמי וסדרת הראיונות של Python, שנלמדים ב־Python, ומניפולציית ביטים, שנלמדת ב־C++. הם מופיעים אחרי השלבים, כל אחד עם קישור שפותח אותו בשפה שלו. memo ב־Swift הוא מערך או Dictionary, ולמספרים שלמים ב־Swift יש nonzeroBitCount ו־trailingZeroBitCount, שעושים במאפיין אחד את מה שטריק ביטים ב־C++ עושה ביד.

האם צריך לדעת Swift לפני שמתחילים את המסלול?

structs, מחלקות, optionals, גנריות ופרוטוקולים, לכל הפחות. אם הם חדשים לכם, קורס Swift של Coddy מכסה אותם קודם, בחינם, והמסלול הזה ממשיך מהמקום שבו הוא מסתיים.

מסלולי למידה נוספים

אותם קורסים, מסודרים לתפקיד אחר. ההתקדמות עוברת איתכם: קורס שסיימתם במסלול אחד נספר בכל מסלול שכולל אותו.

כל מסלולי הלמידה
איור של שפות התכנות ב-Coddy

להתחיל את מסלול מבני נתונים ואלגוריתמים בחינם

להתחיל ללמוד