מחלקת TrieNode
שיעור 3 מתוך 14 בקורס טריות (עצי קידומות) – סדרת מבני נתונים מס׳ 8 של Coddy.
כל צומת בטריי הוא אובייקט קטן שמכיל שני פרטי מידע: הילדים שמסתעפים ממנו (מפה מתו שמצביע לצומת הבא) ודגל isEndOfWord שמציין אם הנתיב מהשורש לצומת הזה מאיית מילה שלמה שהוכנסה.
זה כל המחלקה. אין ערכים, אין מפתחות: המיקום של צומת בעץ הוא המשמעות שלו. נתיב של קשתות המסומנות c, a, t מהשורש מגיע לצומת שבו אנחנו מגדירים isEndOfWord = true כשאנחנו מכניסים את "cat".
נתחיל בבניית המחלקה TrieNode הזו — המחלקה Trie בשיעור הבא תשתמש בה.
אתגר
קלכתבו מחלקה 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 אונליין