Menu
Coddy logo textTech

מחלקת TrieNode

שיעור 3 מתוך 14 בקורס טריות (עצי קידומות) – סדרת מבני נתונים מס׳ 8 של Coddy.

כל צומת בטריי הוא אובייקט קטן שמכיל שני פרטי מידע: הילדים שמסתעפים ממנו (מפה מתו שמצביע לצומת הבא) ודגל isEndOfWord שמציין אם הנתיב מהשורש לצומת הזה מאיית מילה שלמה שהוכנסה.

זה כל המחלקה. אין ערכים, אין מפתחות: המיקום של צומת בעץ הוא המשמעות שלו. נתיב של קשתות המסומנות c, a, t מהשורש מגיע לצומת שבו אנחנו מגדירים isEndOfWord = true כשאנחנו מכניסים את "cat".

נתחיל בבניית המחלקה TrieNode הזו — המחלקה Trie בשיעור הבא תשתמש בה.

challenge icon

אתגר

קל

כתבו מחלקה TrieNode עם בנאי שאינו מקבל קלט.

אתחלו שני שדות:

  • הגדירו את children כמפה ריקה (או כמבנה המקביל בשפה שלכם למיפוי מתווים לצמתים).
  • הגדירו את isEndOfWord כfalse.

נסו בעצמכם

#include <stdio.h>
#include "trienode.h"

int main() {
    TrieNode* n = TrieNode_new();
    printf("%s %s\n",
           TrieNode_childrenCount(n) == 0 ? "true" : "false",
           n->isEndOfWord ? "true" : "false");
    return 0;
}

כל השיעורים ביחידה טריות (עצי קידומות) – סדרת מבני נתונים מס׳ 8

תרגלו בעצמכם: קומפיילר C אונליין